diff options
Diffstat (limited to 'src/com/memberwebs/ldapxml/helpers/LXClass.java')
-rw-r--r-- | src/com/memberwebs/ldapxml/helpers/LXClass.java | 81 |
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 |