/** @author Dennis Cosgrove */ public class ParameterAccessDragModel extends AbstractExpressionDragModel { private static edu.cmu.cs.dennisc.java.util.InitializingIfAbsentMap< org.lgna.project.ast.UserParameter, ParameterAccessDragModel> map = edu.cmu.cs.dennisc.java.util.Maps.newInitializingIfAbsentHashMap(); public static ParameterAccessDragModel getInstance(org.lgna.project.ast.UserParameter parameter) { return map.getInitializingIfAbsent( parameter, new edu.cmu.cs.dennisc.java.util.InitializingIfAbsentMap.Initializer< org.lgna.project.ast.UserParameter, ParameterAccessDragModel>() { @Override public ParameterAccessDragModel initialize(org.lgna.project.ast.UserParameter parameter) { return new ParameterAccessDragModel(parameter); } }); } private final org.lgna.project.ast.UserParameter parameter; private ParameterAccessDragModel(org.lgna.project.ast.UserParameter parameter) { super(java.util.UUID.fromString("5b79d910-bbeb-4f9c-9593-28c0697f4036")); this.parameter = parameter; } @Override public boolean isPotentialStatementCreator() { return false; } @Override protected org.lgna.croquet.Model getDropModel( org.alice.ide.ast.draganddrop.BlockStatementIndexPair blockStatementIndexPair) { throw new AssertionError(); } @Override public org.lgna.project.ast.AbstractType<?, ?, ?> getType() { return this.parameter.getValueType(); } @Override protected org.lgna.croquet.Model getDropModel( org.lgna.project.ast.ExpressionProperty expressionProperty) { return org.alice.ide.croquet.models.ast.cascade.expression.ParameterAccessOperation.getInstance( this.parameter, expressionProperty); } }