/****************************************************************************** * Copyright (c) 2016 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: * Konstantin Komissarchik - initial implementation and ongoing maintenance ******************************************************************************/ package org.eclipse.sapphire.samples.gallery; import org.eclipse.sapphire.Element; import org.eclipse.sapphire.ElementType; import org.eclipse.sapphire.ReferenceValue; import org.eclipse.sapphire.Type; import org.eclipse.sapphire.Value; import org.eclipse.sapphire.ValueProperty; import org.eclipse.sapphire.java.JavaPackageName; import org.eclipse.sapphire.java.JavaType; import org.eclipse.sapphire.java.JavaTypeConstraint; import org.eclipse.sapphire.java.JavaTypeKind; import org.eclipse.sapphire.java.JavaTypeName; import org.eclipse.sapphire.modeling.annotations.Label; import org.eclipse.sapphire.modeling.annotations.MustExist; import org.eclipse.sapphire.modeling.annotations.Reference; import org.eclipse.sapphire.modeling.annotations.Required; import org.eclipse.sapphire.modeling.xml.annotations.XmlBinding; /** * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a> */ public interface IJavaTypeNameValueGallery extends Element { ElementType TYPE = new ElementType( IJavaTypeNameValueGallery.class ); // *** OptionalAnyType *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "optional any type" ) @XmlBinding( path = "optional-any-type" ) ValueProperty PROP_OPTIONAL_ANY_TYPE = new ValueProperty( TYPE, "OptionalAnyType" ); ReferenceValue<JavaTypeName,JavaType> getOptionalAnyType(); void setOptionalAnyType( String value ); void setOptionalAnyType( JavaTypeName value ); void setOptionalAnyType( JavaType value ); // *** RequiredClass1 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required class 1" ) @JavaTypeConstraint( kind = { JavaTypeKind.CLASS, JavaTypeKind.ABSTRACT_CLASS } ) @MustExist @Required @XmlBinding( path = "required-class-1" ) ValueProperty PROP_REQUIRED_CLASS_1 = new ValueProperty( TYPE, "RequiredClass1" ); ReferenceValue<JavaTypeName,JavaType> getRequiredClass1(); void setRequiredClass1( String value ); void setRequiredClass1( JavaTypeName value ); void setRequiredClass1( JavaType value ); // *** RequiredClass2 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required class 2" ) @JavaTypeConstraint( kind = { JavaTypeKind.CLASS, JavaTypeKind.ABSTRACT_CLASS }, type = "java.util.List" ) @MustExist @Required @XmlBinding( path = "required-class-2" ) ValueProperty PROP_REQUIRED_CLASS_2 = new ValueProperty( TYPE, "RequiredClass2" ); ReferenceValue<JavaTypeName,JavaType> getRequiredClass2(); void setRequiredClass2( String value ); void setRequiredClass2( JavaTypeName value ); void setRequiredClass2( JavaType value ); // *** RequiredClass3 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required class 3" ) @JavaTypeConstraint( kind = { JavaTypeKind.CLASS, JavaTypeKind.ABSTRACT_CLASS }, type = "java.util.AbstractList" ) @MustExist @Required @XmlBinding( path = "required-class-3" ) ValueProperty PROP_REQUIRED_CLASS_3 = new ValueProperty( TYPE, "RequiredClass3" ); ReferenceValue<JavaTypeName,JavaType> getRequiredClass3(); void setRequiredClass3( String value ); void setRequiredClass3( JavaTypeName value ); void setRequiredClass3( JavaType value ); // *** RequiredClass4 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required class 4" ) @JavaTypeConstraint( kind = { JavaTypeKind.CLASS, JavaTypeKind.ABSTRACT_CLASS }, type = { "java.util.AbstractList", "java.lang.Cloneable" } ) @MustExist @Required @XmlBinding( path = "required-class-4" ) ValueProperty PROP_REQUIRED_CLASS_4 = new ValueProperty( TYPE, "RequiredClass4" ); ReferenceValue<JavaTypeName,JavaType> getRequiredClass4(); void setRequiredClass4( String value ); void setRequiredClass4( JavaTypeName value ); void setRequiredClass4( JavaType value ); // *** RequiredClass5 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required class 5" ) @JavaTypeConstraint( kind = JavaTypeKind.CLASS, type = "java.util.AbstractList" ) @MustExist @Required @XmlBinding( path = "required-class-5" ) ValueProperty PROP_REQUIRED_CLASS_5 = new ValueProperty( TYPE, "RequiredClass5" ); ReferenceValue<JavaTypeName,JavaType> getRequiredClass5(); void setRequiredClass5( String value ); void setRequiredClass5( JavaTypeName value ); void setRequiredClass5( JavaType value ); // *** RequiredInterface1 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required interface 1" ) @JavaTypeConstraint( kind = JavaTypeKind.INTERFACE ) @MustExist @Required @XmlBinding( path = "required-interface-1" ) ValueProperty PROP_REQUIRED_INTERFACE_1 = new ValueProperty( TYPE, "RequiredInterface1" ); ReferenceValue<JavaTypeName,JavaType> getRequiredInterface1(); void setRequiredInterface1( String value ); void setRequiredInterface1( JavaTypeName value ); void setRequiredInterface1( JavaType value ); // *** RequiredInterface2 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required interface 2" ) @JavaTypeConstraint( kind = JavaTypeKind.INTERFACE, type = "java.util.List" ) @MustExist @Required @XmlBinding( path = "required-interface-2" ) ValueProperty PROP_REQUIRED_INTERFACE_2 = new ValueProperty( TYPE, "RequiredInterface2" ); ReferenceValue<JavaTypeName,JavaType> getRequiredInterface2(); void setRequiredInterface2( String value ); void setRequiredInterface2( JavaTypeName value ); void setRequiredInterface2( JavaType value ); // *** RequiredInterface3 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required interface 3" ) @JavaTypeConstraint( kind = JavaTypeKind.INTERFACE, type = { "java.util.List", "java.lang.Cloneable" } ) @MustExist @Required @XmlBinding( path = "required-interface-3" ) ValueProperty PROP_REQUIRED_INTERFACE_3 = new ValueProperty( TYPE, "RequiredInterface3" ); ReferenceValue<JavaTypeName,JavaType> getRequiredInterface3(); void setRequiredInterface3( String value ); void setRequiredInterface3( JavaTypeName value ); void setRequiredInterface3( JavaType value ); // *** RequiredAnnotation1 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required annotation 1" ) @JavaTypeConstraint( kind = JavaTypeKind.ANNOTATION ) @MustExist @Required @XmlBinding( path = "required-annotation-1" ) ValueProperty PROP_REQUIRED_ANNOTATION_1 = new ValueProperty( TYPE, "RequiredAnnotation1" ); ReferenceValue<JavaTypeName,JavaType> getRequiredAnnotation1(); void setRequiredAnnotation1( String value ); void setRequiredAnnotation1( JavaTypeName value ); void setRequiredAnnotation1( JavaType value ); // *** RequiredEnum1 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required enum 1" ) @JavaTypeConstraint( kind = JavaTypeKind.ENUM ) @MustExist @Required @XmlBinding( path = "required-enum-1" ) ValueProperty PROP_REQUIRED_ENUM_1 = new ValueProperty( TYPE, "RequiredEnum1" ); ReferenceValue<JavaTypeName,JavaType> getRequiredEnum1(); void setRequiredEnum1( String value ); void setRequiredEnum1( JavaTypeName value ); void setRequiredEnum1( JavaType value ); // *** RequiredMixedType1 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required mixed type 1" ) @JavaTypeConstraint( kind = { JavaTypeKind.CLASS, JavaTypeKind.INTERFACE } ) @MustExist @Required @XmlBinding( path = "required-mixed-type-1" ) ValueProperty PROP_REQUIRED_MIXED_TYPE_1 = new ValueProperty( TYPE, "RequiredMixedType1" ); ReferenceValue<JavaTypeName,JavaType> getRequiredMixedType1(); void setRequiredMixedType1( String value ); void setRequiredMixedType1( JavaTypeName value ); void setRequiredMixedType1( JavaType value ); // *** RequiredMixedType2 *** @Type( base = JavaTypeName.class ) @Reference( target = JavaType.class ) @Label( standard = "required mixed type 2" ) @JavaTypeConstraint( kind = { JavaTypeKind.CLASS, JavaTypeKind.INTERFACE, JavaTypeKind.ENUM } ) @MustExist @Required @XmlBinding( path = "required-mixed-type-2" ) ValueProperty PROP_REQUIRED_MIXED_TYPE_2 = new ValueProperty( TYPE, "RequiredMixedType2" ); ReferenceValue<JavaTypeName,JavaType> getRequiredMixedType2(); void setRequiredMixedType2( String value ); void setRequiredMixedType2( JavaTypeName value ); void setRequiredMixedType2( JavaType value ); // *** Package *** @Type( base = JavaPackageName.class ) ValueProperty PROP_PACKAGE = new ValueProperty( TYPE, "Package" ); Value<JavaPackageName> getPackage(); void setPackage( String value ); void setPackage( JavaPackageName value ); }