summaryrefslogtreecommitdiff
path: root/src/com/memberwebs/ldapxml/helpers/LXClass.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/memberwebs/ldapxml/helpers/LXClass.java')
-rw-r--r--src/com/memberwebs/ldapxml/helpers/LXClass.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/com/memberwebs/ldapxml/helpers/LXClass.java b/src/com/memberwebs/ldapxml/helpers/LXClass.java
new file mode 100644
index 0000000..a88dba1
--- /dev/null
+++ b/src/com/memberwebs/ldapxml/helpers/LXClass.java
@@ -0,0 +1,81 @@
+package com.memberwebs.ldapxml.helpers;
+
+import java.io.*;
+import java.util.*;
+
+import org.w3c.dom.*;
+
+/**
+ * Represents a <class> in an LX map.
+ *
+ * @author nielsen@memberwebs.com
+ * @version 0.5
+ */
+public class LXClass
+ extends LXBase
+{
+ /**
+ * Construct a new LXClass.
+ *
+ * @param parent This class's parent object in the LX map tree.
+ */
+ LXClass(LXBase parent)
+ {
+ super(parent);
+ m_isInline = true;
+ m_isInclusive = true;
+ }
+
+ /**
+ * Returns an attribute of this class.
+ *
+ * @param name The attribute's name
+ * @return The attrtibute, or null if no such attribute is present.
+ */
+ public LXAttribute getAttribute(String name)
+ {
+ LXAttribute attr = (LXAttribute)getChild(name);
+
+ // If there is no such attribute and we're allowed
+ // to just include everything, then...
+ if(attr == null)
+ {
+ if(m_isInclusive)
+ {
+ // ... just create it on the fly.
+ attr = new LXAttribute(this, true);
+ attr.setName(name);
+ }
+ }
+
+ // Check if we haven't been marked as unusable
+ else if(!attr.isUseable())
+ {
+ attr = null;
+ }
+
+ return attr;
+ }
+
+ /**
+ * Checks if this class' attributes go inline
+ * or if the class gets it's own element in XML.
+ *
+ * @return Inline or not.
+ */
+ public final boolean isInline()
+ {
+ return m_isInline;
+ }
+
+ public final boolean isInclusive()
+ {
+ return m_isInclusive;
+ }
+
+ // Include all attributes not otherwise specified
+ boolean m_isInclusive;
+
+ // Create a class element around attributes in XML.
+ boolean m_isInline;
+}; \ No newline at end of file