/******************************************************************************* * Copyright (c) 2011 Oracle. 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: * Oracle - initial API and implementation ******************************************************************************/ package org.eclipse.jpt.jaxb.core.internal.context.java; import java.util.List; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.jaxb.core.context.JaxbPackage; import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo; import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages; import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages; import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaTypeAnnotation; import org.eclipse.wst.validation.internal.provisional.core.IMessage; import org.eclipse.wst.validation.internal.provisional.core.IReporter; public class GenericJavaPackageXmlSchemaType extends GenericJavaXmlSchemaType { public GenericJavaPackageXmlSchemaType(JaxbPackageInfo parent, XmlSchemaTypeAnnotation xmlSchemaTypeAnnotation) { super(parent, xmlSchemaTypeAnnotation); } @Override public JaxbPackageInfo getParent() { return (JaxbPackageInfo) super.getParent(); } protected JaxbPackageInfo getJaxbPackageInfo() { return getParent(); } @Override protected JaxbPackage getJaxbPackage() { return getJaxbPackageInfo().getJaxbPackage(); } // ***** validation ***** @Override public void validate(List messages, IReporter reporter, CompilationUnit astRoot) { super.validate(messages, reporter, astRoot); String fqType = getFullyQualifiedType(); if (fqType == null || XmlSchemaTypeAnnotation.DEFAULT_TYPE.equals(fqType)) { messages.add( DefaultValidationMessages.buildMessage( IMessage.HIGH_SEVERITY, JaxbValidationMessages.XML_SCHEMA_TYPE__TYPE_NOT_SPECIFIED_ON_PACKAGE, this, getValidationTextRange(astRoot))); } } }