diff options
author | kmoore | 2011-01-21 21:13:24 +0000 |
---|---|---|
committer | kmoore | 2011-01-21 21:13:24 +0000 |
commit | 89c2cd1dc8ed6519d8a16848003398c136ace97b (patch) | |
tree | 98510b0edf72515d8d12919bc87b028cc7219209 /jaxb | |
parent | 6fdd73e71f1b81e3d9e16cbd48cb116ebe92a392 (diff) | |
download | webtools.dali-89c2cd1dc8ed6519d8a16848003398c136ace97b.tar.gz webtools.dali-89c2cd1dc8ed6519d8a16848003398c136ace97b.tar.xz webtools.dali-89c2cd1dc8ed6519d8a16848003398c136ace97b.zip |
adding code assist to XmlSchemaType at the attribute/element mapping level
Diffstat (limited to 'jaxb')
-rw-r--r-- | jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdSchema.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdSchema.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdSchema.java index ba8db718f1..353712d4e2 100644 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdSchema.java +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/xsd/XsdSchema.java @@ -9,11 +9,14 @@ *******************************************************************************/ package org.eclipse.jpt.jaxb.core.xsd; +import org.eclipse.jpt.utility.Filter; +import org.eclipse.jpt.utility.internal.StringTools; import org.eclipse.jpt.utility.internal.iterables.FilteringIterable; import org.eclipse.jpt.utility.internal.iterables.SnapshotCloneIterable; import org.eclipse.jpt.utility.internal.iterables.TransformationIterable; import org.eclipse.xsd.XSDElementDeclaration; import org.eclipse.xsd.XSDSchema; +import org.eclipse.xsd.XSDSimpleTypeDefinition; import org.eclipse.xsd.XSDTypeDefinition; public class XsdSchema @@ -42,6 +45,15 @@ public class XsdSchema }; } + public Iterable<XsdSimpleTypeDefinition> getSimpleTypeDefinitions() { + return new TransformationIterable<XSDTypeDefinition, XsdSimpleTypeDefinition>(getXSDSimpleTypeDefinitions()) { + @Override + protected XsdSimpleTypeDefinition transform(XSDTypeDefinition o) { + return (XsdSimpleTypeDefinition) XsdUtil.getAdapter(o); + } + }; + } + public Iterable<XsdTypeDefinition> getTypeDefinitions(final String namespace) { return new TransformationIterable<XSDTypeDefinition, XsdTypeDefinition>( new FilteringIterable<XSDTypeDefinition>(getXSDTypeDefinitions()) { @@ -57,6 +69,21 @@ public class XsdSchema }; } + public Iterable<XsdSimpleTypeDefinition> getSimpleTypeDefinitions(final String namespace) { + return new TransformationIterable<XSDSimpleTypeDefinition, XsdSimpleTypeDefinition>( + new FilteringIterable<XSDSimpleTypeDefinition>(getXSDSimpleTypeDefinitions()) { + @Override + protected boolean accept(XSDSimpleTypeDefinition o) { + return o.getTargetNamespace().equals(namespace); + } + }) { + @Override + protected XsdSimpleTypeDefinition transform(XSDSimpleTypeDefinition o) { + return (XsdSimpleTypeDefinition) XsdUtil.getAdapter(o); + } + }; + } + public XsdTypeDefinition getTypeDefinition(String namespace, String name) { for (XSDTypeDefinition typeDefinition : getXSDTypeDefinitions()) { if (typeDefinition.getTargetNamespace().equals(namespace) && typeDefinition.getName().equals(name)) { @@ -70,6 +97,21 @@ public class XsdSchema return new SnapshotCloneIterable(this.xsdSchema.getTypeDefinitions()); } + protected Iterable<XSDSimpleTypeDefinition> getXSDSimpleTypeDefinitions() { + return new TransformationIterable<XSDTypeDefinition, XSDSimpleTypeDefinition>( + new FilteringIterable<XSDTypeDefinition>(getXSDTypeDefinitions()) { + @Override + protected boolean accept(XSDTypeDefinition o) { + return o instanceof XSDSimpleTypeDefinition; + } + }) { + @Override + protected XSDSimpleTypeDefinition transform(XSDTypeDefinition o) { + return (XSDSimpleTypeDefinition) o; + } + }; + } + public Iterable<XsdElementDeclaration> getElementDeclarations() { return new TransformationIterable<XSDElementDeclaration, XsdElementDeclaration>(getXSDElementDeclarations()) { @Override @@ -106,4 +148,34 @@ public class XsdSchema protected Iterable<XSDElementDeclaration> getXSDElementDeclarations() { return new SnapshotCloneIterable(this.xsdSchema.getElementDeclarations()); } + + public Iterable<String> getNamespaceProposals(Filter<String> filter) { + return StringTools.convertToJavaStringLiterals( + new FilteringIterable<String>(getNamespaces(), filter)); + } + + public Iterable<String> getTypeNameProposals(String namespace, Filter<String> filter) { + return StringTools.convertToJavaStringLiterals( + new FilteringIterable<String>( + new TransformationIterable<XsdTypeDefinition, String>(this.getTypeDefinitions(namespace)) { + @Override + protected String transform(XsdTypeDefinition o) { + return o.getName(); + } + }, + filter)); + } + + public Iterable<String> getSimpleTypeNameProposals(String namespace, Filter<String> filter) { + return StringTools.convertToJavaStringLiterals( + new FilteringIterable<String>( + new TransformationIterable<XsdSimpleTypeDefinition, String>(this.getSimpleTypeDefinitions(namespace)) { + @Override + protected String transform(XsdSimpleTypeDefinition o) { + return o.getName(); + } + }, + filter)); + } + }
\ No newline at end of file |