public String formatSuperType(SClassDeclIR classDecl) { return classDecl.getSuperNames().isEmpty() ? "" : "extends " + classDecl.getSuperNames().get(0); }
private void makeThread(ADefaultClassDeclIR node) { SClassDeclIR threadClass = getThreadClass(node.getSuperNames(), node); threadClass.getSuperNames().clear(); ATokenNameIR superName = new ATokenNameIR(); superName.setName(concPrefixes.vdmThreadClassName()); threadClass.getSuperNames().add(superName); }
public Set<String> getSuperClasses(SClassDeclIR classDecl, List<SClassDeclIR> classes) { if (classDecl.getSuperNames().isEmpty()) { return new HashSet<>(); } else { Set<String> superClasses = new HashSet<>(); for (ATokenNameIR s : classDecl.getSuperNames()) { superClasses.add(s.getName()); SClassDeclIR clazz = findClass(classes, s.getName()); if (clazz != null) { superClasses.addAll(getSuperClasses(clazz, classes)); } } return superClasses; } }
private SClassDeclIR getThreadClass(List<ATokenNameIR> superNames, SClassDeclIR classCg) { if (superNames.isEmpty() || superNames.get(0).getName().equals(concPrefixes.vdmThreadClassName())) { return classCg; } else { SClassDeclIR superClass = null; for (SClassDeclIR c : info.getClasses()) { if (c.getName().equals(superNames.get(0).getName())) { superClass = c; break; } } return getThreadClass(superClass.getSuperNames(), superClass); } } }
private AInterfaceDeclIR convertToInterface(SClassDeclIR c) { List<AFieldDeclIR> clonedFields = new LinkedList<>(); for (AFieldDeclIR f : c.getFields()) { clonedFields.add(f.clone()); } List<AMethodDeclIR> clonedMethods = new LinkedList<>(); for (AMethodDeclIR m : c.getMethods()) { if (!m.getIsConstructor() && !(m.getTag() instanceof IRGeneratedTag)) { clonedMethods.add(m.clone()); } } AInterfaceDeclIR inter = new AInterfaceDeclIR(); inter.setFields(clonedFields); inter.setMetaData(c.getMetaData()); inter.setMethodSignatures(clonedMethods); inter.setName(c.getName()); inter.setPackage(c.getPackage()); inter.setSourceNode(c.getSourceNode()); inter.setTag(c.getTag()); for (ATokenNameIR n : c.getSuperNames()) { inter.getExtension().add(n.clone()); } return inter; }
superName.setName(s.getName()); classCg.getSuperNames().add(superName);