adds support for fields as well as local variables.
[cfb.git] / prod / net / jaekl / cfb / xml / LocalVariable.java
index 277bf2dba69bb82d15ce67fc526fa5676afbc83d..1a590ae7df6cbaa9ca2a9eabc81bec4bdda5cbcd 100644 (file)
@@ -9,7 +9,7 @@ import net.jaekl.qd.xml.MissingAttributeException;
 import net.jaekl.qd.xml.ParseResult;
 import net.jaekl.qd.xml.XmlParseException;
 
-public class LocalVariable extends ParseResult {
+public class LocalVariable extends ParseResult implements Variable {
 
        static final String TAG = "LocalVariable";
        static final String[] INTERNAL = { };
@@ -18,16 +18,41 @@ public class LocalVariable extends ParseResult {
        static final String NAME = "name";
        static final String ROLE = "role";
        
+       Long m_id;
        String m_name;
        String m_role;
        
        public LocalVariable() {
                super(TAG, INTERNAL, EXTERNAL);
                
+               m_id = null;
                m_name = m_role = null;
        }
        
+       public LocalVariable(Long id, String name, String role) {
+               super(TAG, INTERNAL, EXTERNAL);
+
+               m_id = id;
+               m_name = name;
+               m_role = role;
+       }
+       
+       public Long getId() { return m_id; }
+       
+       @Override
+       public String getDescription()
+       {
+               String result = getName();
+               if (null != getRole()) {
+                       result += " (" + getRole() + ")";
+               }
+               return result;
+       }
+       
+       @Override
        public String getName() { return m_name; }
+       
+       @Override
        public String getRole() { return m_role; }
        
        @Override
@@ -78,6 +103,6 @@ public class LocalVariable extends ParseResult {
        @Override
        public int hashCode()
        {
-               return ( (1 + Util.objHashCode(m_name)) * (1 + Util.objHashCode(m_role)) );
+               return ( (Util.objHashCode(m_name)) ^ (Util.objHashCode(m_role)) );
        }
 }