Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkTargetLocator.java')
-rw-r--r--bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkTargetLocator.java301
1 files changed, 0 insertions, 301 deletions
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkTargetLocator.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkTargetLocator.java
deleted file mode 100644
index c04aebd595..0000000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkTargetLocator.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.ui.internal.editor;
-
-import java.util.List;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDVariety;
-import org.eclipse.xsd.util.XSDConstants;
-import org.eclipse.xsd.util.XSDSwitch;
-
-/**
- * A custom XSDSwitch used to locate the "referenced" component. Used by the
- * hyperlink/F3 navigation mechanism. Made a separate class because it is used
- * from the WSDL editor as well.
- */
-public class XSDHyperlinkTargetLocator extends XSDSwitch
-{
- /**
- * Holds the attribute name if the cursor/mouse is over an attribute.
- */
- private String attributeName;
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.xsd.util.XSDSwitch#caseXSDAttributeDeclaration(org.eclipse.xsd.XSDAttributeDeclaration)
- */
- public Object caseXSDAttributeDeclaration(XSDAttributeDeclaration attributeDeclaration)
- {
- XSDConcreteComponent target = null;
-
- if (attributeDeclaration.isAttributeDeclarationReference())
- {
- target = attributeDeclaration.getResolvedAttributeDeclaration();
- }
- else if (attributeDeclaration.getAnonymousTypeDefinition() == null)
- {
- target = attributeDeclaration.getTypeDefinition();
-
- // Avoid navigating to built in data types.
-
- if (isFromSchemaForSchema(target))
- {
- target = null;
- }
- }
- return target;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.xsd.util.XSDSwitch#caseXSDAttributeGroupDefinition(org.eclipse.xsd.XSDAttributeGroupDefinition)
- */
- public Object caseXSDAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroupDefinition)
- {
- XSDConcreteComponent target = null;
-
- if (attributeGroupDefinition.isAttributeGroupDefinitionReference())
- {
- target = attributeGroupDefinition.getResolvedAttributeGroupDefinition();
- }
-
- return target;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.xsd.util.XSDSwitch#caseXSDElementDeclaration(org.eclipse.xsd.XSDElementDeclaration)
- */
- public Object caseXSDElementDeclaration(XSDElementDeclaration elementDeclaration)
- {
- XSDConcreteComponent target = null;
-
- if (elementDeclaration.isElementDeclarationReference())
- {
- target = elementDeclaration.getResolvedElementDeclaration();
- }
- else
- {
- XSDConcreteComponent typeDefinition = null;
-
- if (elementDeclaration.getAnonymousTypeDefinition() == null)
- {
- typeDefinition = elementDeclaration.getTypeDefinition();
- }
-
- XSDConcreteComponent substitutionGroupAffiliation = elementDeclaration.getSubstitutionGroupAffiliation();
-
- if (typeDefinition != null && substitutionGroupAffiliation != null)
- {
- // There are 2 things we can navigate to: if the cursor is anywhere on
- // the
- // substitution attribute then jump to that, otherwise just go to the
- // base type.
-
- if (XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE.equals(attributeName))
- {
- target = substitutionGroupAffiliation;
- }
- else
- {
- target = typeDefinition;
- }
- }
- else
- {
- target = typeDefinition != null ? typeDefinition : substitutionGroupAffiliation;
- }
-
- if (isFromSchemaForSchema(target))
- {
- target = null;
- }
- }
-
- return target;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.xsd.util.XSDSwitch#caseXSDIdentityConstraintDefinition(org.eclipse.xsd.XSDIdentityConstraintDefinition)
- */
- public Object caseXSDIdentityConstraintDefinition(XSDIdentityConstraintDefinition idConstraintDefinition)
- {
- Object target = null;
-
- XSDIdentityConstraintDefinition referencedKey = idConstraintDefinition.getReferencedKey();
-
- if (referencedKey != null)
- {
- target = referencedKey;
- }
-
- return target;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.xsd.util.XSDSwitch#caseXSDModelGroupDefinition(org.eclipse.xsd.XSDModelGroupDefinition)
- */
- public Object caseXSDModelGroupDefinition(XSDModelGroupDefinition modelGroupDefinition)
- {
- XSDConcreteComponent target = null;
-
- if (modelGroupDefinition.isModelGroupDefinitionReference())
- {
- target = modelGroupDefinition.getResolvedModelGroupDefinition();
- }
-
- return target;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.xsd.util.XSDSwitch#caseXSDSchemaDirective(org.eclipse.xsd.XSDSchemaDirective)
- */
- public Object caseXSDSchemaDirective(XSDSchemaDirective directive)
- {
- XSDSchema schema = directive.getResolvedSchema();
-
- return schema;
- }
-
- public Object caseXSDSimpleTypeDefinition(XSDSimpleTypeDefinition typeDefinition)
- {
- XSDConcreteComponent target = null;
-
- // Simple types can be one of: atomic, list or union.
-
- XSDVariety variety = typeDefinition.getVariety();
- int varietyType = variety.getValue();
-
- switch (varietyType)
- {
- case XSDVariety.ATOMIC:
- {
- target = typeDefinition.getBaseTypeDefinition();
- }
- break;
- case XSDVariety.LIST:
- {
- target = typeDefinition.getItemTypeDefinition();
- }
- break;
- case XSDVariety.UNION:
- {
- List memberTypes = typeDefinition.getMemberTypeDefinitions();
- if (memberTypes != null && memberTypes.size() > 0)
- {
- // ISSUE: What if there are more than one type?
- // This could be a case for multiple hyperlinks at the same
- // location.
- target = (XSDConcreteComponent) memberTypes.get(0);
- }
- }
- break;
- }
-
- // Avoid navigating to built in data types.
-
- if (isFromSchemaForSchema(target))
- {
- target = null;
- }
-
- return target;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.xsd.util.XSDSwitch#caseXSDTypeDefinition(org.eclipse.xsd.XSDTypeDefinition)
- */
- public Object caseXSDTypeDefinition(XSDTypeDefinition typeDefinition)
- {
- XSDConcreteComponent target = null;
-
- XSDTypeDefinition baseType = typeDefinition.getBaseType();
-
- if (baseType != null)
- {
- target = baseType;
- }
-
- // Avoid navigating to built in data types.
-
- if (isFromSchemaForSchema(target))
- {
- target = null;
- }
-
- return target;
- }
-
- /**
- * Detects if a given schema component is from the schema for schema (built in
- * data types). Used to avoid navigating to this type of components as they
- * don't have an accessible physical location.
- *
- * @param component the component to check.
- * @return true if the component is from the schema for schema namespace,
- * false otherwise.
- */
- public boolean isFromSchemaForSchema(XSDConcreteComponent component)
- {
- if (component == null)
- {
- return false;
- }
-
- XSDSchema schema = component.getSchema();
-
- if (schema != null && schema.equals(schema.getSchemaForSchema()))
- {
- return true;
- }
-
- return false;
- }
-
- /**
- * Locates the target component - for example the element declaration pointed
- * to by an element reference, etc.
- *
- * @param component the current component.
- * @param attributeName the attribute name if the cursor/mouse is over an
- * attribute. This is used to provide fine grained navigation for
- * components with more than one "active" attribute.
- * @return the referenced XSD concrete component or null if none is found.
- */
- public XSDConcreteComponent locate(XSDConcreteComponent component, String attributeName)
- {
- this.attributeName = attributeName;
-
- return (XSDConcreteComponent) doSwitch(component);
- }
-}

Back to the top