Java源码示例:org.simpleframework.xml.Text
示例1
public ComplicatedExample(
@Path("x:path[1]") @ElementMap(name="a") Map<Key, Entry> map,
@Path("x:path[2]") @ElementList(name="a") List<Entry> list,
@Element(name="elementOne") String elementOne,
@Element(name="elementTwo") String elementTwo,
@Element(name="elementThree") String elementThree,
@Text String text,
@Path("x:path[2]/x:someOtherPath") @Attribute(name="attribute_one") String attribute_one,
@Path("x:path[2]/x:someOtherPath") @Attribute(name="attribute_two") String attribute_two)
{
this.map = map;
this.list = list;
this.elementOne = elementOne;
this.elementTwo = elementTwo;
this.elementThree = elementThree;
this.text = text;
this.attribute_one = attribute_one;
this.attribute_two = attribute_two;
}
示例2
public Alternative(@Attribute(name = "level", required = false) final String level,
@Attribute(name = "score", required = false) final double score,
@Text final String text) {
this.level = level;
this.score = score;
this.text = text;
}
示例3
/**
* This reflectively checks the annotation to determine the type
* of annotation it represents. If it represents an XML schema
* annotation it is used to create a <code>Contact</code> which
* can be used to represent the field within the source object.
*
* @param field the field that the annotation comes from
* @param label the annotation used to model the XML schema
* @param list this is the list of annotations on the field
*/
private void scan(Field field, Annotation label, Annotation[] list) {
if(label instanceof Attribute) {
process(field, label, list);
}
if(label instanceof ElementUnion) {
process(field, label, list);
}
if(label instanceof ElementListUnion) {
process(field, label, list);
}
if(label instanceof ElementMapUnion) {
process(field, label, list);
}
if(label instanceof ElementList) {
process(field, label, list);
}
if(label instanceof ElementArray) {
process(field, label, list);
}
if(label instanceof ElementMap) {
process(field, label, list);
}
if(label instanceof Element) {
process(field, label, list);
}
if(label instanceof Version) {
process(field, label, list);
}
if(label instanceof Text) {
process(field, label, list);
}
if(label instanceof Transient) {
remove(field, label);
}
}
示例4
/**
* This reflectively checks the annotation to determine the type
* of annotation it represents. If it represents an XML schema
* annotation it is used to create a <code>Contact</code> which
* can be used to represent the method within the source object.
*
* @param method the method that the annotation comes from
* @param label the annotation used to model the XML schema
* @param list this is the list of annotations on the method
*/
private void scan(Method method, Annotation label, Annotation[] list) throws Exception {
if(label instanceof Attribute) {
process(method, label, list);
}
if(label instanceof ElementUnion) {
process(method, label, list);
}
if(label instanceof ElementListUnion) {
process(method, label, list);
}
if(label instanceof ElementMapUnion) {
process(method, label, list);
}
if(label instanceof ElementList) {
process(method, label, list);
}
if(label instanceof ElementArray) {
process(method, label, list);
}
if(label instanceof ElementMap) {
process(method, label, list);
}
if(label instanceof Element) {
process(method, label, list);
}
if(label instanceof Version) {
process(method, label, list);
}
if(label instanceof Text) {
process(method, label, list);
}
if(label instanceof Transient) {
remove(method, label, list);
}
}
示例5
/**
* Creates an entry that is used to select the constructor for the
* parameter. Each parameter must implement a constructor that takes
* a constructor, and annotation, and the index of the parameter. If
* the annotation is not know this method throws an exception.
*
* @param label the XML annotation used to create the parameter
*
* @return this returns the entry used to create a constructor
*/
private ParameterBuilder getBuilder(Annotation label) throws Exception{
if(label instanceof Element) {
return new ParameterBuilder(ElementParameter.class, Element.class);
}
if(label instanceof ElementList) {
return new ParameterBuilder(ElementListParameter.class, ElementList.class);
}
if(label instanceof ElementArray) {
return new ParameterBuilder(ElementArrayParameter.class, ElementArray.class);
}
if(label instanceof ElementMapUnion) {
return new ParameterBuilder(ElementMapUnionParameter.class, ElementMapUnion.class, ElementMap.class);
}
if(label instanceof ElementListUnion) {
return new ParameterBuilder(ElementListUnionParameter.class, ElementListUnion.class, ElementList.class);
}
if(label instanceof ElementUnion) {
return new ParameterBuilder(ElementUnionParameter.class, ElementUnion.class, Element.class);
}
if(label instanceof ElementMap) {
return new ParameterBuilder(ElementMapParameter.class, ElementMap.class);
}
if(label instanceof Attribute) {
return new ParameterBuilder(AttributeParameter.class, Attribute.class);
}
if(label instanceof Text) {
return new ParameterBuilder(TextParameter.class, Text.class);
}
throw new PersistenceException("Annotation %s not supported", label);
}
示例6
/**
* This is used to create <code>Parameter</code> objects which are
* used to represent the parameters in a constructor. Each parameter
* contains an annotation an the index it appears in.
*
* @param label this is the annotation used for the parameter
* @param ordinal this is the position the parameter appears at
*
* @return this returns the parameters for the constructor
*/
private List<Parameter> process(Annotation label, int ordinal) throws Exception{
if(label instanceof Attribute) {
return create(label, ordinal);
}
if(label instanceof Element) {
return create(label, ordinal);
}
if(label instanceof ElementList) {
return create(label, ordinal);
}
if(label instanceof ElementArray) {
return create(label, ordinal);
}
if(label instanceof ElementMap) {
return create(label, ordinal);
}
if(label instanceof ElementListUnion) {
return union(label, ordinal);
}
if(label instanceof ElementMapUnion) {
return union(label, ordinal);
}
if(label instanceof ElementUnion) {
return union(label, ordinal);
}
if(label instanceof Text) {
return create(label, ordinal);
}
return emptyList();
}
示例7
/**
* Creates an entry that is used to select the constructor for the
* label. Each label must implement a constructor that takes a
* contact and the specific XML annotation for that field. If the
* annotation is not know this method throws an exception.
*
* @param label the XML annotation used to create the label
*
* @return this returns the entry used to create a constructor
*/
private LabelBuilder getBuilder(Annotation label) throws Exception{
if(label instanceof Element) {
return new LabelBuilder(ElementLabel.class, Element.class);
}
if(label instanceof ElementList) {
return new LabelBuilder(ElementListLabel.class, ElementList.class);
}
if(label instanceof ElementArray) {
return new LabelBuilder(ElementArrayLabel.class, ElementArray.class);
}
if(label instanceof ElementMap) {
return new LabelBuilder(ElementMapLabel.class, ElementMap.class);
}
if(label instanceof ElementUnion) {
return new LabelBuilder(ElementUnionLabel.class, ElementUnion.class, Element.class);
}
if(label instanceof ElementListUnion) {
return new LabelBuilder(ElementListUnionLabel.class, ElementListUnion.class, ElementList.class);
}
if(label instanceof ElementMapUnion) {
return new LabelBuilder(ElementMapUnionLabel.class, ElementMapUnion.class, ElementMap.class);
}
if(label instanceof Attribute) {
return new LabelBuilder(AttributeLabel.class, Attribute.class);
}
if(label instanceof Version) {
return new LabelBuilder(VersionLabel.class, Version.class);
}
if(label instanceof Text) {
return new LabelBuilder(TextLabel.class, Text.class);
}
throw new PersistenceException("Annotation %s not supported", label);
}
示例8
/**
* Constructor for the <code>TextParameter</code> object.
* This is used to create a parameter that can be used to
* determine a consistent name using the provided XML annotation.
*
* @param factory this is the constructor the parameter is in
* @param value this is the annotation used for the parameter
* @param format this is the format used for this parameter
* @param index this is the index the parameter appears at
*/
public TextParameter(Constructor factory, Text value, Format format, int index) throws Exception {
this.contact = new Contact(value, factory, index);
this.label = new TextLabel(contact, value, format);
this.expression = label.getExpression();
this.path = label.getPath();
this.type = label.getType();
this.name = label.getName();
this.key = label.getKey();
this.index = index;
}
示例9
/**
* Constructor for the <code>TextLabel</code> object. This is
* used to create a label that can convert a XML node into a
* primitive value from an XML element text value.
*
* @param contact this is the contact this label represents
* @param label this is the annotation for the contact
* @param format this is the format used for this label
*/
public TextLabel(Contact contact, Text label, Format format) {
this.detail = new Introspector(contact, this, format);
this.required = label.required();
this.type = contact.getType();
this.empty = label.empty();
this.data = label.data();
this.contact = contact;
this.label = label;
}
示例10
/**
* This is used to register the provided label is a text label.
* Registration as a text label can only happen if the field or
* method has a <code>Text</code> annotation declared on it.
*
* @param label this is the label to register as text
*/
private void registerText(Label label) throws Exception {
Contact contact = label.getContact();
Text value = contact.getAnnotation(Text.class);
if(value != null) {
text = new TextListLabel(label, value);
}
}
示例11
/**
* This reflectively checks the annotation to determine the type
* of annotation it represents. If it represents an XML schema
* annotation it is used to create a <code>Label</code> which can
* be used to represent the field within the context object.
*
* @param field the field that the annotation comes from
* @param label the annotation used to model the XML schema
*
* @throws Exception if there is more than one text annotation
*/
public void process(Contact field, Annotation label) throws Exception {
if(label instanceof Attribute) {
process(field, label, attributes);
}
if(label instanceof ElementUnion) {
union(field, label, elements);
}
if(label instanceof ElementListUnion) {
union(field, label, elements);
}
if(label instanceof ElementMapUnion) {
union(field, label, elements);
}
if(label instanceof ElementList) {
process(field, label, elements);
}
if(label instanceof ElementArray) {
process(field, label, elements);
}
if(label instanceof ElementMap) {
process(field, label, elements);
}
if(label instanceof Element) {
process(field, label, elements);
}
if(label instanceof Version) {
version(field, label);
}
if(label instanceof Text) {
text(field, label);
}
}
示例12
private PathWithTextAndElementExample(
@Text String text,
@Path("some/path") @Attribute(name="name") String value,
@Path("some") @Element(name="name") String item)
{
this.item = item;
this.value = value;
this.text = text;
}
示例13
private OtherPathWithTextAndElementExample(
@Path("valuePath/path") @Attribute(name="name") String a,
@Path("someOtherPath/path") @Element(name="name") String b,
@Text String c)
{
this.a = a;
this.b = b;
this.c = c;
}
示例14
private PathWithMultipleTextExample(
@Attribute(name="a") String a,
@Path("valuePath[1]") @Text String b,
@Attribute(name="c") String c,
@Path("valuePath[2]") @Text String d)
{
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
示例15
@Text
public String getText() {
return text;
}
示例16
public ExampleWithTextAndElement(
@Path("a") @Text String a,
@Element(name="b") String b,
@Element(name="c") String c) {}
示例17
public ClashBetweenElementAndText(
@Path("a/b/c") @Text String a,
@Element(name="c") String c) {}
示例18
public ClashBetweenElementUnionAndText(
@Path("a/b") @ElementUnion({
@Element(name="x"),
@Element(name="y")
}) String a,
@Path("a/b/x") @Text String b){}
示例19
public ClashInText(
@Path("a/b/x") @Text String a,
@Path("a/b/x") @Text String b){}
示例20
public InvalidTextWithElement(
@Text String a,
@Element(name="c") String b) {
this.a = a;
this.b = b;
}
示例21
public InvalidTextWithCrossingPath(
@Path("a/b") @Text String a,
@Path("a/b/c") @Text String b) {
this.a = a;
this.b = b;
}
示例22
@Text
private String getContent() {
return text;
}
示例23
@Text
public void setContent(String text) {
this.text = text;
}
示例24
public TextExample(
@Path("path[1]/details") @Text String x,
@Path("path[2]/details") @Text String z) {
this.a = x;
this.b = z;
}
示例25
@Text
public void setLength(long length) {
this.length = length;
}
示例26
@Text
public long getLength() {
return length;
}
示例27
@Text(data=true)
public void setText(String text) {
this.text = text;
}
示例28
@Text(data=true)
public String getText() {
return text;
}
示例29
@Text
private String getContent() {
return text;
}
示例30
@Text
public void setContent(String text) {
this.text = text;
}