Property.java :  » UML » umlatj » org » umlatj » kernel » Java Open Source

Java Open Source » UML » umlatj 
umlatj » org » umlatj » kernel » Property.java
//
// uml@J, UML annotations for Java
//
// Copyright (C) 2010 Laurent Legrand or third-party contributors as
// indicated by the @author tags or express copyright attribution
// statements applied by the authors.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
//

package org.umlatj.kernel;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * A property is a structural feature.
 * 
 * A property related to a classifier by ownedAttribute represents an attribute,
 * and it may also represent an association end. It relates an instance of the
 * class to a value or collection of values of the type of the attribute.
 * 
 * A property related to an Association by memberEnd or its specializations
 * represents an end of the association. The type of property is the type of the
 * end of the association.
 * 
 * @author Laurent Legrand
 * 
 */

@Retention(RetentionPolicy.RUNTIME)
@Target( { ElementType.FIELD, ElementType.METHOD })
public @interface Property {

  /**
   * Specifies the kind of aggregation that applies to the Property. The
   * default value is none.
   */
  AggregationKind aggregation() default AggregationKind.none;

  /**
   * An optional list of ordered qualifier attributes for the end. If the list
   * is empty, then the Association is not qualified.
   */
  String qualifier() default "";

  /**
   * 
   * 
   */
  boolean isDerivedUnion() default false;

  /**
   * 
   * @return
   */
  String subset() default "";

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.