@Override public Void visit(TypeDecl t, Integer step) throws CompilationException { out.println(skip(step) + "TypeDecl " + t.getIdent() + " ["); t.getTypeDef().accept(this, step + 1); out.println(skip(step) + "]"); return null; }
@Override public Void visit(TypeDecl t, Integer step) throws CompilationException { out.println(skip(step) + "create type " + generateFullName(t.getDataverseName(), t.getIdent()) + generateIfNotExists(t.getIfNotExists()) + " as"); t.getTypeDef().accept(this, step + 1); out.println(); return null; }
public void translate() throws AlgebricksException { String defaultDataverse = getDefaultDataverse(); types = new HashMap<>(); typeDataGenMap = new HashMap<>(); for (Statement stmt : statements) { if (stmt.getKind() == Statement.Kind.TYPE_DECL) { TypeDecl td = (TypeDecl) stmt; String typeDataverse = td.getDataverseName() == null ? defaultDataverse : td.getDataverseName().getValue(); Map<TypeSignature, IAType> typeInStmt = TypeTranslator.computeTypes(mdTxnCtx, td.getTypeDef(), td.getIdent().getValue(), typeDataverse, types); types.putAll(typeInStmt); TypeSignature signature = new TypeSignature(typeDataverse, td.getIdent().getValue()); TypeDataGen tdg = td.getDatagenAnnotation(); if (tdg != null) { typeDataGenMap.put(signature, tdg); } } } }
SourceLocation sourceLoc = stmtCreateType.getSourceLocation(); String dataverseName = getActiveDataverse(stmtCreateType.getDataverseName()); String typeName = stmtCreateType.getIdent().getValue(); MetadataTransactionContext mdTxnCtx = MetadataManager.INSTANCE.beginTransaction(); metadataProvider.setMetadataTxnContext(mdTxnCtx); } else { Map<TypeSignature, IAType> typeMap = TypeTranslator.computeTypes(mdTxnCtx, stmtCreateType.getTypeDef(), stmtCreateType.getIdent().getValue(), dataverseName); TypeSignature typeSignature = new TypeSignature(dataverseName, typeName); IAType type = typeMap.get(typeSignature);