summaryrefslogtreecommitdiffstats
path: root/src/com/ibm/ServerWizard2/model/Attribute.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/ibm/ServerWizard2/model/Attribute.java')
-rw-r--r--src/com/ibm/ServerWizard2/model/Attribute.java169
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());
+ }
+}
OpenPOWER on IntegriCloud