/** */ package org.eclipse.mylyn.docs.epub.opf.util; import java.util.Map; import org.eclipse.emf.common.util.Diagnostic; import org.eclipse.emf.common.util.DiagnosticChain; import org.eclipse.emf.common.util.ResourceLocator; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.util.EObjectValidator; import org.eclipse.mylyn.docs.epub.opf.Guide; import org.eclipse.mylyn.docs.epub.opf.Item; import org.eclipse.mylyn.docs.epub.opf.Itemref; import org.eclipse.mylyn.docs.epub.opf.Manifest; import org.eclipse.mylyn.docs.epub.opf.Meta; import org.eclipse.mylyn.docs.epub.opf.Metadata; import org.eclipse.mylyn.docs.epub.opf.OPFPackage; import org.eclipse.mylyn.docs.epub.opf.Package; import org.eclipse.mylyn.docs.epub.opf.Reference; import org.eclipse.mylyn.docs.epub.opf.Role; import org.eclipse.mylyn.docs.epub.opf.Spine; import org.eclipse.mylyn.docs.epub.opf.Tours; import org.eclipse.mylyn.docs.epub.opf.Type; /** * <!-- begin-user-doc --> The <b>Validator</b> for the model. <!-- end-user-doc --> * @see org.eclipse.mylyn.docs.epub.opf.OPFPackage * @generated */ public class OPFValidator extends EObjectValidator { /** * The cached model package * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public static final OPFValidator INSTANCE = new OPFValidator(); /** * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @see org.eclipse.emf.common.util.Diagnostic#getSource() * @see org.eclipse.emf.common.util.Diagnostic#getCode() * @generated */ public static final String DIAGNOSTIC_SOURCE = "org.eclipse.mylyn.docs.epub.opf"; //$NON-NLS-1$ /** * A constant with a fixed name that can be used as the base value for additional hand written constants. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @generated */ private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0; /** * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class. * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT; /** * Creates an instance of the switch. * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public OPFValidator() { super(); } /** * Returns the package of this validator switch. * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override protected EPackage getEPackage() { return OPFPackage.eINSTANCE; } /** * Calls <code>validateXXX</code> for the corresponding classifier of the model. * <!-- begin-user-doc --> <!-- * end-user-doc --> * @generated */ @Override protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) { switch (classifierID) { case OPFPackage.PACKAGE: return validatePackage((org.eclipse.mylyn.docs.epub.opf.Package)value, diagnostics, context); case OPFPackage.METADATA: return validateMetadata((Metadata)value, diagnostics, context); case OPFPackage.MANIFEST: return validateManifest((Manifest)value, diagnostics, context); case OPFPackage.ITEM: return validateItem((Item)value, diagnostics, context); case OPFPackage.SPINE: return validateSpine((Spine)value, diagnostics, context); case OPFPackage.GUIDE: return validateGuide((Guide)value, diagnostics, context); case OPFPackage.REFERENCE: return validateReference((Reference)value, diagnostics, context); case OPFPackage.ITEMREF: return validateItemref((Itemref)value, diagnostics, context); case OPFPackage.TOURS: return validateTours((Tours)value, diagnostics, context); case OPFPackage.META: return validateMeta((Meta)value, diagnostics, context); case OPFPackage.ROLE: return validateRole((Role)value, diagnostics, context); case OPFPackage.TYPE: return validateType((Type)value, diagnostics, context); default: return true; } } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validatePackage(org.eclipse.mylyn.docs.epub.opf.Package package_, DiagnosticChain diagnostics, Map<Object, Object> context) { return validate_EveryDefaultConstraint(package_, diagnostics, context); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validateMetadata(Metadata metadata, DiagnosticChain diagnostics, Map<Object, Object> context) { return validate_EveryDefaultConstraint(metadata, diagnostics, context); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validateManifest(Manifest manifest, DiagnosticChain diagnostics, Map<Object, Object> context) { return validate_EveryDefaultConstraint(manifest, diagnostics, context); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validateItem(Item item, DiagnosticChain diagnostics, Map<Object, Object> context) { return validate_EveryDefaultConstraint(item, diagnostics, context); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validateSpine(Spine spine, DiagnosticChain diagnostics, Map<Object, Object> context) { return validate_EveryDefaultConstraint(spine, diagnostics, context); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validateGuide(Guide guide, DiagnosticChain diagnostics, Map<Object, Object> context) { return validate_EveryDefaultConstraint(guide, diagnostics, context); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validateReference(Reference reference, DiagnosticChain diagnostics, Map<Object, Object> context) { if (!validate_NoCircularContainment(reference, diagnostics, context)) return false; boolean result = validate_EveryMultiplicityConforms(reference, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryDataValueConforms(reference, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(reference, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(reference, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryProxyResolves(reference, diagnostics, context); if (result || diagnostics != null) result &= validate_UniqueID(reference, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryKeyUnique(reference, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(reference, diagnostics, context); if (result || diagnostics != null) result &= validateReference_validType(reference, diagnostics, context); return result; } /** * Validates the validType constraint of '<em>Reference</em>'. <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated NOT */ public boolean validateReference_validType(Reference reference, DiagnosticChain diagnostics, Map<Object, Object> context) { if (reference.getType().startsWith("other.")) { //$NON-NLS-1$ return true; } // Must match one of the defined types. if (Type.get(reference.getType()) == null) { if (diagnostics != null) { diagnostics.add( createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0, "_UI_GenericConstraint_diagnostic", //$NON-NLS-1$ new Object[] { "validType", getObjectLabel(reference, context) }, //$NON-NLS-1$ new Object[] { reference }, context)); } return false; } return true; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validateItemref(Itemref itemref, DiagnosticChain diagnostics, Map<Object, Object> context) { return validate_EveryDefaultConstraint(itemref, diagnostics, context); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validateTours(Tours tours, DiagnosticChain diagnostics, Map<Object, Object> context) { return validate_EveryDefaultConstraint(tours, diagnostics, context); } /** * The Meta items are very different in the EPUB 2 and 3 specifications. * * @generated NOT */ public boolean validateMeta(Meta meta, DiagnosticChain diagnostics, Map<Object, Object> context) { org.eclipse.mylyn.docs.epub.opf.Package p = (Package) meta.eContainer().eContainer(); String version = p.getVersion(); if (version.equals("3.0")) { // Anything goes return validate_EveryDefaultConstraint(meta, diagnostics, context); } else { // May not use the 3.0 Meta element return validate_EveryDefaultConstraint(meta, diagnostics, context) && !meta.eIsSet(OPFPackage.Literals.META__PROPERTY) && !meta.eIsSet(OPFPackage.Literals.META__REFINES) && !meta.eIsSet(OPFPackage.Literals.META__ID) && !meta.eIsSet(OPFPackage.Literals.META__DIR) && !meta.eIsSet(OPFPackage.Literals.META__SCHEME) && meta.eIsSet(OPFPackage.Literals.META__NAME) && meta.eIsSet(OPFPackage.Literals.META__CONTENT); } } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validateRole(Role role, DiagnosticChain diagnostics, Map<Object, Object> context) { return true; } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ public boolean validateType(Type type, DiagnosticChain diagnostics, Map<Object, Object> context) { return true; } /** * Returns the resource locator that will be used to fetch messages for this validator's diagnostics. <!-- * begin-user-doc --> <!-- end-user-doc --> * * @generated */ @Override public ResourceLocator getResourceLocator() { // TODO // Specialize this to return a resource locator for messages specific to this validator. // Ensure that you remove @generated or mark it @generated NOT return super.getResourceLocator(); } } //OPFValidator