package org.openflexo.model.annotations; import java.lang.annotation.Annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Inherited @Target(value = { ElementType.METHOD, ElementType.TYPE }) public @interface XMLElement { public static final String DEFAULT_XML_TAG = ""; public static final String NO_CONTEXT = ""; public static final String NO_NAME_SPACE = ""; public String xmlTag() default DEFAULT_XML_TAG; public String context() default NO_CONTEXT; public String namespace() default NO_NAME_SPACE; boolean primary() default false; public static class XMLElementImpl implements XMLElement { private String xmlTag; private String context; private String namespace; private boolean primary; public XMLElementImpl(String xmlTag, String context, String namespace, boolean primary) { this.xmlTag = xmlTag; this.context = context; this.namespace = namespace; this.primary = primary; } @Override public Class<? extends Annotation> annotationType() { return XMLElement.class; } @Override public String xmlTag() { return xmlTag; } @Override public String context() { return context; } @Override public String namespace() { return namespace; } @Override public boolean primary() { return primary; } } }