public static org.lgna.project.ast.NamedUserType getNamedUserTypeFromSuperType( org.lgna.project.ast.JavaType superType) { // <lg> Added to support generality in reuse if (superType.isAssignableTo(org.lgna.story.SScene.class)) { return getSceneUserType(); } // </lg> org.lgna.project.ast.AbstractType<?, ?, ?> parameter0Type = ConstructorArgumentUtilities.getContructor0Parameter0Type(superType); ExtendsTypeCriterion criterion; if (parameter0Type != null) { criterion = new ExtendsTypeWithConstructorParameterTypeCriterion( superType, ConstructorArgumentUtilities.getContructor0Parameter0Type(superType)); } else { criterion = new DefaultConstructorExtendsTypeCriterion(superType); } org.alice.ide.IDE ide = org.alice.ide.IDE.getActiveInstance(); if (ide != null) { org.lgna.project.Project project = ide.getProject(); if (project != null) { java.util.Set<org.lgna.project.ast.NamedUserType> existingTypes = project.getNamedUserTypes(); for (org.lgna.project.ast.NamedUserType existingType : existingTypes) { if (criterion.accept(existingType)) { return existingType; } } } } return createTypeFor(superType, createClassNameFromSuperType(superType), null, null); }
public static org.lgna.project.ast.AbstractType<?, ?, ?>[] getArgumentTypes( org.lgna.project.ast.AbstractType<?, ?, ?> ancestorType, org.lgna.project.ast.AbstractType<?, ?, ?> resourceType) { java.util.List<org.lgna.project.ast.AbstractType<?, ?, ?>> types = edu.cmu.cs.dennisc.java.util.Lists.newLinkedList(); updateArgumentTypes( types, ConstructorArgumentUtilities.getContructor0Parameter0Type(ancestorType), resourceType); org.lgna.project.ast.AbstractType<?, ?, ?>[] rv = new org.lgna.project.ast.AbstractType<?, ?, ?>[types.size()]; types.toArray(rv); return rv; }