Search in sources :

Example 1 with TypeDataGen

use of org.apache.asterix.common.annotations.TypeDataGen in project asterixdb by apache.

the class AdmDataGen method dataGen.

public void dataGen() throws Exception {
    for (Map.Entry<TypeSignature, IAType> me : typeMap.entrySet()) {
        TypeSignature tn = me.getKey();
        TypeDataGen tdg = typeAnnotMap.get(tn);
        if (tdg.isDataGen()) {
            IAType t = me.getValue();
            if (t.getTypeTag() != ATypeTag.OBJECT) {
                throw new NotImplementedException();
            }
            ARecordType rt = (ARecordType) t;
            RecordDataGenAnnotation dga = firstDataGenAnnotation(rt);
            if (dga == null) {
                throw new Exception("No data generator annotations for type " + tn);
            }
            File outFile = new File(outputDir + File.separator + tdg.getOutputFileName());
            PrintStream outStream = new PrintStream(new BufferedOutputStream(new FileOutputStream(outFile)));
            RecordGenerator rg = new RecordGenerator(rt, dga, "\n");
            rg.init(outStream, dgCtx);
            for (long i = 0; i < tdg.getNumValues(); i++) {
                rg.generate();
            }
            outStream.close();
        }
    }
}
Also used : PrintStream(java.io.PrintStream) RecordDataGenAnnotation(org.apache.asterix.common.annotations.RecordDataGenAnnotation) NotImplementedException(org.apache.hyracks.algebricks.common.exceptions.NotImplementedException) TypeDataGen(org.apache.asterix.common.annotations.TypeDataGen) NotImplementedException(org.apache.hyracks.algebricks.common.exceptions.NotImplementedException) ACIDException(org.apache.asterix.common.exceptions.ACIDException) MetadataException(org.apache.asterix.metadata.MetadataException) AlgebricksException(org.apache.hyracks.algebricks.common.exceptions.AlgebricksException) ParseException(org.apache.asterix.lang.aql.parser.ParseException) AsterixException(org.apache.asterix.common.exceptions.AsterixException) IOException(java.io.IOException) TypeSignature(org.apache.asterix.om.types.TypeSignature) FileOutputStream(java.io.FileOutputStream) Map(java.util.Map) HashMap(java.util.HashMap) ARecordType(org.apache.asterix.om.types.ARecordType) File(java.io.File) BufferedOutputStream(java.io.BufferedOutputStream) IAType(org.apache.asterix.om.types.IAType)

Example 2 with TypeDataGen

use of org.apache.asterix.common.annotations.TypeDataGen in project asterixdb by apache.

the class ADGenDmlTranslator method translate.

public void translate() throws AsterixException, MetadataException, AlgebricksException {
    String defaultDataverse = getDefaultDataverse();
    types = new HashMap<TypeSignature, IAType>();
    typeDataGenMap = new HashMap<TypeSignature, TypeDataGen>();
    for (Statement stmt : aqlStatements) {
        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);
            }
        }
    }
}
Also used : TypeSignature(org.apache.asterix.om.types.TypeSignature) Statement(org.apache.asterix.lang.common.base.Statement) TypeDecl(org.apache.asterix.lang.common.statement.TypeDecl) TypeDataGen(org.apache.asterix.common.annotations.TypeDataGen) IAType(org.apache.asterix.om.types.IAType)

Aggregations

TypeDataGen (org.apache.asterix.common.annotations.TypeDataGen)2 IAType (org.apache.asterix.om.types.IAType)2 TypeSignature (org.apache.asterix.om.types.TypeSignature)2 BufferedOutputStream (java.io.BufferedOutputStream)1 File (java.io.File)1 FileOutputStream (java.io.FileOutputStream)1 IOException (java.io.IOException)1 PrintStream (java.io.PrintStream)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 RecordDataGenAnnotation (org.apache.asterix.common.annotations.RecordDataGenAnnotation)1 ACIDException (org.apache.asterix.common.exceptions.ACIDException)1 AsterixException (org.apache.asterix.common.exceptions.AsterixException)1 ParseException (org.apache.asterix.lang.aql.parser.ParseException)1 Statement (org.apache.asterix.lang.common.base.Statement)1 TypeDecl (org.apache.asterix.lang.common.statement.TypeDecl)1 MetadataException (org.apache.asterix.metadata.MetadataException)1 ARecordType (org.apache.asterix.om.types.ARecordType)1 AlgebricksException (org.apache.hyracks.algebricks.common.exceptions.AlgebricksException)1 NotImplementedException (org.apache.hyracks.algebricks.common.exceptions.NotImplementedException)1