diff options
Diffstat (limited to 'src/com/ibm/ServerWizard2/model/Attribute.java')
-rw-r--r-- | src/com/ibm/ServerWizard2/model/Attribute.java | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/src/com/ibm/ServerWizard2/model/Attribute.java b/src/com/ibm/ServerWizard2/model/Attribute.java new file mode 100644 index 0000000..17b346c --- /dev/null +++ b/src/com/ibm/ServerWizard2/model/Attribute.java @@ -0,0 +1,169 @@ +package com.ibm.ServerWizard2.model; + +import java.io.Writer; + +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +public class Attribute implements java.io.Serializable { + private static final long serialVersionUID = 1L; + public String name = ""; + public String group = ""; + public AttributeValue value; + + public String inherited = ""; + public String desc = ""; + public String compareStr = ""; + public Boolean readable = false; + public Boolean writeable = false; + public Boolean readonly = false; + public Persistency persistency = Persistency.NO_PERSISTENCY; + public Boolean hide = false; + private Boolean bitmask = false; + private Boolean global = false; + + public enum Persistency { + NO_PERSISTENCY, VOLATILE_ZEROED, NON_VOLATILE, VOLATILE + }; + + public Attribute() { + } + + public Attribute(Attribute a) { + this.name = a.name; + this.desc = a.desc; + this.group = a.group; + this.persistency = a.persistency; + this.readable = a.readable; + this.writeable = a.writeable; + this.inherited = a.inherited; + this.hide = a.hide; + this.bitmask = a.bitmask; + this.global = a.global; + + if (a.value instanceof AttributeValueComplex) { + this.value = new AttributeValueComplex((AttributeValueComplex)a.value); + } + else if(a.value instanceof AttributeValueSimple) { + this.value = new AttributeValueSimple((AttributeValueSimple)a.value); + } + else if(a.value instanceof AttributeValueNative) { + this.value = new AttributeValueNative((AttributeValueNative)a.value); + } + else { + + } + + } + + public AttributeValue getValue() { + return value; + } + public boolean isReadable() { + return readable; + } + public boolean isWriteable() { + return writeable; + } + public boolean isHidden() { + return hide; + } + + public boolean isGlobal() { + return this.global; + } + + public String toString() { + String rtn="Attribute: "+name+" = "; + rtn="Attribute: "+name+" = "+value.toString()+" inherited="+this.inherited; + return rtn; + } + + public void setPersistence(String p) { + if (p.equals("non-volatile")) { + persistency = Persistency.NON_VOLATILE; + } else if (p.equals("volatile-zeroed")) { + persistency = Persistency.VOLATILE_ZEROED; + } else if (p.equals("volatile")) { + persistency = Persistency.VOLATILE; + } else { + throw new NullPointerException("Invalid Peristence: "+p); + } + } + public String getPersistence() { + if (persistency == Persistency.NON_VOLATILE) { + return "non-volatile"; + } else if(persistency == Persistency.VOLATILE_ZEROED) { + return "volatile-zeroed"; + } else if(persistency == Persistency.NO_PERSISTENCY) { + return ""; + } else if(persistency == Persistency.VOLATILE) { + return "volatile"; + } else { return ""; } + + } + public void readModelXML(Element attribute) { + name = SystemModel.getElement(attribute, "id"); + desc = SystemModel.getElement(attribute,"description"); + group = SystemModel.getElement(attribute,"group"); + + String p = SystemModel.getElement(attribute,"persistency"); + if (!p.isEmpty()) { setPersistence(p); } + + if (SystemModel.isElementDefined(attribute,"bitmask")) { + bitmask=true; + } + if (SystemModel.isElementDefined(attribute,"global")) { + global=true; + } + + if (SystemModel.isElementDefined(attribute,"readable")) { + readable=true; + } + if (SystemModel.isElementDefined(attribute,"writeable")) { + writeable=true; + } + if (SystemModel.isElementDefined(attribute,"serverwizHide") || + name.equals("MODEL") || name.equals("TYPE") || name.equals("CLASS")) { + hide=true; + } + if (SystemModel.isElementDefined(attribute,"serverwizReadonly")) { + readonly=true; + } + Node simpleType = attribute.getElementsByTagName("simpleType").item(0); + if (simpleType!=null) { + value = new AttributeValueSimple(this); + value.readonly = readonly; + value.readXML((Element)simpleType); + } + Node complexType = attribute.getElementsByTagName("complexType").item(0); + if (complexType!=null) { + value = new AttributeValueComplex(this); + value.readonly = readonly; + value.readXML((Element)complexType); + } + Node nativeType = attribute.getElementsByTagName("nativeType").item(0); + if (nativeType!=null) { + value = new AttributeValueNative(this); + value.readonly = readonly; + value.readXML((Element)nativeType); + } + } + public void writeBusInstanceXML(Writer out) throws Exception { + out.write("\t\t<bus_attribute>\n"); + out.write("\t\t\t<id>"+name+"</id>\n"); + value.writeInstanceXML(out); + out.write("\t\t</bus_attribute>\n"); + } + public void writeInstanceXML(Writer out) throws Exception { + out.write("\t<attribute>\n"); + out.write("\t\t<id>"+name+"</id>\n"); + value.writeInstanceXML(out); + out.write("\t</attribute>\n"); + } + + public String compare(Object o) { + Attribute a = (Attribute) o; + return value.compare(a.getValue()); + } +} |