package org.hwo.pulscounter.simplescript; import java.util.ArrayList; import java.util.Arrays; import java.util.UUID; import org.hwo.models.TableMapper.TableColumn; public class SimpleScript { private UUID id; private String name; private String description; private ArrayList simpleScriptElements; public SimpleScript(){ id = UUID.randomUUID(); name = "SimpleScript"; description = "-"; simpleScriptElements = new ArrayList<>(); simpleScriptElements.add(new SimpleScriptElement(0)); } public SimpleScript(UUID uuid,String name,String description,SimpleScriptElement elements[]){ this.id = uuid; this.name = name; this.description = description; this.simpleScriptElements = new ArrayList<>(); this.simpleScriptElements.addAll(Arrays.asList(elements)); } public SimpleScript(UUID uuid,String name,String description,Integer[] elementCodes){ this.id = uuid; this.name = name; this.description = description; this.simpleScriptElements = new ArrayList<>(); for (Integer code: elementCodes){ this.simpleScriptElements.add(new SimpleScriptElement(code)); } } public UUID getId() { return id; } public void setId(UUID id) { this.id = id; } @TableColumn(label="name",order=10,width=120) public String getName() { return name; } public void setName(String name) { this.name = name; } @TableColumn(label="Bezeichnung",order=20) public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public ArrayList getSimpleScriptElements() { return simpleScriptElements; } public Integer[] getSimpleScriptElementsAsInt(){ Integer[] sse = new Integer[simpleScriptElements.size()]; for (int i=0;i> 8) & 0xff; } @TableColumn(label="Z",order=90) public String getHumanZ(){ return SimpleScriptAddress.toString(getZ()); } public int getZ(){ return (code >> 16) & 0xff; } public int getCondition(){ return (code >> 24) & 0xff; } public int getOperation(){ return (code >> 27) & 0xff; } public void setA(int a){ code &= ~0xff; code |= a & 0xff; } public void setB(int b){ code &= ~( 0xff << 8 ); code |= (b & 0xff) << 8; } public void setZ(int z){ code &= ~( 0xff << 16 ); code |= (z & 0xff) << 16; } public void setCondition(int condition){ code &= ~( 0x07 << 24 ); code |= (condition & 0x07) << 24; } public void setOperation(int operation){ code &= ~( 0x1f << 27 ); code |= (operation & 0x1F) << 27; } @TableColumn(label="Operation",order=50) ScriptOperation getScriptOperation(){ return ScriptOperation.get(getOperation()); } public void setScriptOperation(ScriptOperation scriptOperation){ if (scriptOperation == null){ setOperation(0); } else { setOperation(scriptOperation.getCode()); } } @TableColumn(label="Bedingung",order=40) public ScriptCondition getScriptCondition(){ return ScriptCondition.get(getCondition()); } public void setScriptCondition(ScriptCondition scriptCondition){ if (scriptCondition == null){ setCondition(0); } else { setCondition(scriptCondition.getCode()); } } } }