// Path: src/main/java/org/echocat/adam/configuration/IdEnabled.java
// public abstract class IdEnabled implements org.echocat.jomon.runtime.util.IdEnabled<String> {
// 
//     @Nonnull
//     private String _id = randomUUID().toString();
// 
//     @Override
//     @Nonnull
//     @XmlAttribute(name = "id", required = true)
//     public String getId() {
//         return _id;
//     }
// 
//     public void setId(@Nonnull String id) {
//         _id = id;
//     }
// 
// }
// 
// Path: src/main/java/org/echocat/adam/configuration/access/viewedit/ViewEditAccess.java
// @XmlType(name = "viewEditAccess", namespace = SCHEMA_NAMESPACE)
// public class ViewEditAccess extends ViewAccessSupport<Default, Anonymous, Owner, Administrator, Group> {
// 
//     @Override
//     @XmlElement(name = "default", namespace = SCHEMA_NAMESPACE, type = Default.class)
//     public void setDefault(@Nullable Default all) {
//         super.setDefault(all);
//     }
// 
//     @Override
//     @XmlElement(name = "anonymous", namespace = SCHEMA_NAMESPACE, type = Anonymous.class)
//     public void setAnonymous(@Nullable Anonymous anonymous) {
//         super.setAnonymous(anonymous);
//     }
// 
//     @Override
//     @XmlElement(name = "owner", namespace = SCHEMA_NAMESPACE, type = Owner.class)
//     public void setOwner(@Nullable Owner owner) {
//         super.setOwner(owner);
//     }
// 
//     @Override
//     @XmlElement(name = "administrator", namespace = SCHEMA_NAMESPACE, type = Administrator.class)
//     public void setAdministrator(@Nullable Administrator administrator) {
//         super.setAdministrator(administrator);
//     }
// 
//     @Override
//     @XmlElement(name = "group", namespace = SCHEMA_NAMESPACE, type = Group.class)
//     public void setGroups(@Nullable List<Group> groups) {
//         super.setGroups(groups);
//     }
// 
// }
// 
// Path: src/main/java/org/echocat/adam/configuration/localization/Localized.java
// @XmlType(name = "localized", namespace = SCHEMA_NAMESPACE)
// public abstract class Localized extends IdEnabled {
// 
//     @Nullable
//     private List<Localization> _localizations;
// 
//     @Nullable
//     @XmlElement(name = "localization", namespace = SCHEMA_NAMESPACE)
//     public List<Localization> getLocalizations() {
//         return _localizations;
//     }
// 
//     public void setLocalizations(@Nullable List<Localization> localizations) {
//         _localizations = localizations;
//     }
// 
// 
// }
// 
// Path: src/main/java/org/echocat/adam/configuration/template/Template.java
// @XmlType(name = "template", namespace = SCHEMA_NAMESPACE)
// public class Template extends TemplateSupport {
// 
//     @Nonnull
//     private String _source = "";
//     @Nonnull
//     private TemplateFormat _format = velocity;
// 
//     @Override
//     @Nonnull
//     public String getSource() {
//         return _source;
//     }
// 
//     @XmlValue
//     @XmlValueExtension
//     public void setSource(@Nonnull String source) {
//         _source = source;
//     }
// 
//     @Override
//     @Nonnull
//     public TemplateFormat getFormat() {
//         return _format;
//     }
// 
//     @XmlAttribute(name = "format")
//     public void setFormat(@Nonnull TemplateFormat format) {
//         _format = format;
//     }
// 
// }
// 
// Path: src/main/java/org/echocat/adam/profile/element/ElementModel.java
// public static enum Type {
//     singleLineText,
//     multiLineText,
//     emailAddress,
//     url,
//     phoneNumber,
//     wikiMarkup,
//     html
// }
// 
// Path: src/main/java/org/echocat/adam/configuration/ConfigurationContants.java
// public static final String SCHEMA_NAMESPACE = "https://adam.echocat.org/schemas/configuration.xsd";


import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import java.util.List;
import static org.echocat.adam.configuration.ConfigurationContants.SCHEMA_NAMESPACE;
import static org.echocat.adam.profile.element.ElementModel.Type.singleLineText;
import org.echocat.adam.configuration.IdEnabled;
import org.echocat.adam.configuration.access.viewedit.ViewEditAccess;
import org.echocat.adam.configuration.localization.Localized;
import org.echocat.adam.configuration.template.Template;
import org.echocat.adam.profile.element.ElementModel.Type;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlAttribute;
    @Nonnull
    @XmlAttribute(name = "type")
    public Type getType() {
        return _type;
    }

    public void setType(@Nonnull Type type) {
        _type = type;
    }

    @Nullable
    @XmlElement(name = "template", namespace = SCHEMA_NAMESPACE, type = Template.class)
    public Template getTemplate() {
        return _template;
    }

    public void setTemplate(@Nullable Template template) {
        _template = template;
    }

    @XmlAttribute(name = "searchable")
    public boolean isSearchable() {
        return _searchable;
    }

    public void setSearchable(boolean searchable) {
        _searchable = searchable;
    }

    @XmlAttribute(name = "visibleIfEmpty")
// Path: src/main/java/org/echocat/adam/configuration/IdEnabled.java
// public abstract class IdEnabled implements org.echocat.jomon.runtime.util.IdEnabled<String> {
// 
//     @Nonnull
//     private String _id = randomUUID().toString();
// 
//     @Override
//     @Nonnull
//     @XmlAttribute(name = "id", required = true)
//     public String getId() {
//         return _id;
//     }
// 
//     public void setId(@Nonnull String id) {
//         _id = id;
//     }
// 
// }
// 
// Path: src/main/java/org/echocat/adam/configuration/access/viewedit/ViewEditAccess.java
// @XmlType(name = "viewEditAccess", namespace = SCHEMA_NAMESPACE)
// public class ViewEditAccess extends ViewAccessSupport<Default, Anonymous, Owner, Administrator, Group> {
// 
//     @Override
//     @XmlElement(name = "default", namespace = SCHEMA_NAMESPACE, type = Default.class)
//     public void setDefault(@Nullable Default all) {
//         super.setDefault(all);
//     }
// 
//     @Override
//     @XmlElement(name = "anonymous", namespace = SCHEMA_NAMESPACE, type = Anonymous.class)
//     public void setAnonymous(@Nullable Anonymous anonymous) {
//         super.setAnonymous(anonymous);
//     }
// 
//     @Override
//     @XmlElement(name = "owner", namespace = SCHEMA_NAMESPACE, type = Owner.class)
//     public void setOwner(@Nullable Owner owner) {
//         super.setOwner(owner);
//     }
// 
//     @Override
//     @XmlElement(name = "administrator", namespace = SCHEMA_NAMESPACE, type = Administrator.class)
//     public void setAdministrator(@Nullable Administrator administrator) {
//         super.setAdministrator(administrator);
//     }
// 
//     @Override
//     @XmlElement(name = "group", namespace = SCHEMA_NAMESPACE, type = Group.class)
//     public void setGroups(@Nullable List<Group> groups) {
//         super.setGroups(groups);
//     }
// 
// }
// 
// Path: src/main/java/org/echocat/adam/configuration/localization/Localized.java
// @XmlType(name = "localized", namespace = SCHEMA_NAMESPACE)
// public abstract class Localized extends IdEnabled {
// 
//     @Nullable
//     private List<Localization> _localizations;
// 
//     @Nullable
//     @XmlElement(name = "localization", namespace = SCHEMA_NAMESPACE)
//     public List<Localization> getLocalizations() {
//         return _localizations;
//     }
// 
//     public void setLocalizations(@Nullable List<Localization> localizations) {
//         _localizations = localizations;
//     }
// 
// 
// }
// 
// Path: src/main/java/org/echocat/adam/configuration/template/Template.java
// @XmlType(name = "template", namespace = SCHEMA_NAMESPACE)
// public class Template extends TemplateSupport {
// 
//     @Nonnull
//     private String _source = "";
//     @Nonnull
//     private TemplateFormat _format = velocity;
// 
//     @Override
//     @Nonnull
//     public String getSource() {
//         return _source;
//     }
// 
//     @XmlValue
//     @XmlValueExtension
//     public void setSource(@Nonnull String source) {
//         _source = source;
//     }
// 
//     @Override
//     @Nonnull
//     public TemplateFormat getFormat() {
//         return _format;
//     }
// 
//     @XmlAttribute(name = "format")
//     public void setFormat(@Nonnull TemplateFormat format) {
//         _format = format;
//     }
// 
// }
// 
// Path: src/main/java/org/echocat/adam/profile/element/ElementModel.java
// public static enum Type {
//     singleLineText,
//     multiLineText,
//     emailAddress,
//     url,
//     phoneNumber,
//     wikiMarkup,
//     html
// }
// 
// Path: src/main/java/org/echocat/adam/configuration/ConfigurationContants.java
// public static final String SCHEMA_NAMESPACE = "https://adam.echocat.org/schemas/configuration.xsd";


// Path: src/main/java/org/echocat/adam/configuration/profile/Element.java
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import java.util.List;
import static org.echocat.adam.configuration.ConfigurationContants.SCHEMA_NAMESPACE;
import static org.echocat.adam.profile.element.ElementModel.Type.singleLineText;
import org.echocat.adam.configuration.IdEnabled;
import org.echocat.adam.configuration.access.viewedit.ViewEditAccess;
import org.echocat.adam.configuration.localization.Localized;
import org.echocat.adam.configuration.template.Template;
import org.echocat.adam.profile.element.ElementModel.Type;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.bind.annotation.XmlAttribute;

    @Nonnull
    @XmlAttribute(name = "type")
    public Type getType() {
        return _type;
    }

    public void setType(@Nonnull Type type) {
        _type = type;
    }

    @Nullable
    @XmlElement(name = "template", namespace = SCHEMA_NAMESPACE, type = Template.class)
    public Template getTemplate() {
        return _template;
    }

    public void setTemplate(@Nullable Template template) {
        _template = template;
    }

    @XmlAttribute(name = "searchable")
    public boolean isSearchable() {
        return _searchable;
    }

    public void setSearchable(boolean searchable) {
        _searchable = searchable;
    }

    @XmlAttribute(name = "visibleIfEmpty")
    public boolean isVisibleIfEmpty() {