Search in sources :

Example 1 with ABSString

use of org.abs_models.backend.java.lib.types.ABSString in project abstools by abstools.

the class Feature method setupMetaAPI.

/*
     * Define the methods of this class
     */
public static void setupMetaAPI() {
    thisClass.setName("Feature");
    thisClass.addMethod(/*ABSString*/
    "getName", new ABSClosure() {

        @Override
        public ABSString exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicFeature f = (ABSDynamicFeature) t;
            return ABSString.fromString(f.getName());
        }
    });
    thisClass.addMethod(/*ABSString*/
    "getAttributes", new ABSClosure() {

        @Override
        public ABSString exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicFeature f = (ABSDynamicFeature) t;
            // TODO
            return ABSString.fromString("Not Implemented Yet");
        }
    });
}
Also used : ABSDynamicObject(org.abs_models.backend.java.lib.runtime.ABSDynamicObject) ABSClosure(org.abs_models.backend.java.lib.runtime.ABSClosure) ABSDynamicFeature(org.abs_models.backend.java.lib.runtime.ABSDynamicFeature) ABSValue(org.abs_models.backend.java.lib.types.ABSValue) ABSString(org.abs_models.backend.java.lib.types.ABSString)

Example 2 with ABSString

use of org.abs_models.backend.java.lib.types.ABSString in project abstools by abstools.

the class ABSBuiltInFunctions method readln.

public static ABSString readln() {
    Scanner scanner = new Scanner(System.in);
    String line = scanner.nextLine();
    // scanner.close();
    return ABSString.fromString(line.trim());
}
Also used : Scanner(java.util.Scanner) ABSString(org.abs_models.backend.java.lib.types.ABSString)

Example 3 with ABSString

use of org.abs_models.backend.java.lib.types.ABSString in project abstools by abstools.

the class Update method setupMetaAPI.

/*
     * Define the methods of this class
     */
public static void setupMetaAPI() {
    thisClass.setName("Update");
    thisClass.addMethod(/*ABSString*/
    "getName", new ABSClosure() {

        @Override
        public ABSString exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicUpdate update = (ABSDynamicUpdate) t;
            return ABSString.fromString(update.getName());
        }
    });
    thisClass.addMethod(/*ABSUnit*/
    "apply", new ABSClosure() {

        @Override
        public ABSValue exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicUpdate update = (ABSDynamicUpdate) t;
            update.apply();
            return ABSUnit.UNIT;
        }
    });
}
Also used : ABSDynamicObject(org.abs_models.backend.java.lib.runtime.ABSDynamicObject) ABSClosure(org.abs_models.backend.java.lib.runtime.ABSClosure) ABSDynamicUpdate(org.abs_models.backend.java.lib.runtime.ABSDynamicUpdate) ABSValue(org.abs_models.backend.java.lib.types.ABSValue) ABSString(org.abs_models.backend.java.lib.types.ABSString)

Example 4 with ABSString

use of org.abs_models.backend.java.lib.types.ABSString in project abstools by abstools.

the class Product method setupMetaAPI.

/*
     * Define the methods of this class
     */
public static void setupMetaAPI() {
    thisClass.setName("Product");
    /*
         * MetaABS Product API -- cf. abslang.abs module ABS.Meta
         */
    thisClass.addMethod(/*ABSString*/
    "getName", new ABSClosure() {

        @Override
        public ABSString exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicProduct thisP = (ABSDynamicProduct) t;
            return ABSString.fromString(thisP.getName());
        }
    });
    thisClass.addMethod(/*List<ABSDynamicFeature>*/
    "getFeatures", new ABSClosure() {

        @Override
        public ABSValue exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicProduct thisP = (ABSDynamicProduct) t;
            ArrayList<ABSDynamicFeature> features = new ArrayList<>();
            for (ABSDynamicFeature f : thisP.getFeatures()) {
                features.add(f);
            }
            return ListUtils.toABSList(features);
        }
    });
    thisClass.addMethod(/*Set<ABSDynamicProduct>*/
    "getConfigurableProducts", new ABSClosure() {

        @Override
        public ABSValue exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicProduct thisP = (ABSDynamicProduct) t;
            return ListUtils.toABSSet(thisP.getConfigurableProducts());
        }
    });
    thisClass.addMethod(/*ABSDynamicReconfiguration*/
    "getReconfiguration", new ABSClosure() {

        @Override
        public ABSDynamicReconfiguration exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicProduct thisP = (ABSDynamicProduct) t;
            ABSDynamicProduct targetP = (ABSDynamicProduct) params[0];
            return thisP.getReconfiguration(targetP);
        }
    });
}
Also used : ABSDynamicObject(org.abs_models.backend.java.lib.runtime.ABSDynamicObject) ABSClosure(org.abs_models.backend.java.lib.runtime.ABSClosure) ABSDynamicFeature(org.abs_models.backend.java.lib.runtime.ABSDynamicFeature) ABSDynamicProduct(org.abs_models.backend.java.lib.runtime.ABSDynamicProduct) ArrayList(java.util.ArrayList) ABSValue(org.abs_models.backend.java.lib.types.ABSValue) ABSString(org.abs_models.backend.java.lib.types.ABSString) ABSDynamicReconfiguration(org.abs_models.backend.java.lib.runtime.ABSDynamicReconfiguration)

Example 5 with ABSString

use of org.abs_models.backend.java.lib.types.ABSString in project abstools by abstools.

the class Reconfiguration method setupMetaAPI.

/*
     * Define the methods of this class
     */
public static void setupMetaAPI() {
    thisClass.setName("Reconfiguration");
    /* 
         * MetaABS Reconfiguration API -- cf. abslang.abs module ABS.Meta 
         */
    thisClass.addMethod(/*ABSString*/
    "getName", new ABSClosure() {

        @Override
        public ABSString exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicReconfiguration thisR = (ABSDynamicReconfiguration) t;
            return ABSString.fromString(thisR.getName());
        }
    });
    thisClass.addMethod(/*ABSDynamicProduct*/
    "getCurrentProduct", new ABSClosure() {

        @Override
        public ABSDynamicProduct exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicReconfiguration thisR = (ABSDynamicReconfiguration) t;
            return thisR.getCurrentProduct();
        }
    });
    thisClass.addMethod(/*ABSUnit*/
    "setCurrentProduct", new ABSClosure() {

        @Override
        public ABSUnit exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicReconfiguration thisR = (ABSDynamicReconfiguration) t;
            ABSDynamicProduct prod = (ABSDynamicProduct) params[0];
            thisR.setCurrentProduct(prod);
            return ABSUnit.UNIT;
        }
    });
    thisClass.addMethod(/*ABSDynamicProduct*/
    "getTargetProduct", new ABSClosure() {

        @Override
        public ABSDynamicProduct exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicReconfiguration thisR = (ABSDynamicReconfiguration) t;
            return thisR.getTargetProduct();
        }
    });
    thisClass.addMethod(/*ABSUnit*/
    "setTargetProduct", new ABSClosure() {

        @Override
        public ABSUnit exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicReconfiguration thisR = (ABSDynamicReconfiguration) t;
            ABSDynamicProduct prod = (ABSDynamicProduct) params[0];
            thisR.setTargetProduct(prod);
            return ABSUnit.UNIT;
        }
    });
    thisClass.addMethod(/*List<ABSDynamicDelta>*/
    "getDeltas", new ABSClosure() {

        @Override
        public ABSValue exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicReconfiguration thisR = (ABSDynamicReconfiguration) t;
            List<ABSDynamicDelta> deltas = thisR.getDeltas();
            return ListUtils.toABSList(deltas);
        }
    });
    thisClass.addMethod(/*List<ABSDynamicDelta>*/
    "setDeltas", new ABSClosure() {

        @Override
        public ABSValue exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicReconfiguration thisR = (ABSDynamicReconfiguration) t;
            // TODO
            return ABSUnit.UNIT;
        }
    });
    thisClass.addMethod(/*ABSDynamicUpdate*/
    "getStateUpdate", new ABSClosure() {

        @Override
        public ABSDynamicUpdate exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicReconfiguration thisR = (ABSDynamicReconfiguration) t;
            return thisR.getUpdate();
        }
    });
    thisClass.addMethod(/*List<ABSDynamicDelta>*/
    "setStateUpdate", new ABSClosure() {

        @Override
        public ABSValue exec(ABSDynamicObject t, ABSValue... params) {
            ABSDynamicReconfiguration thisR = (ABSDynamicReconfiguration) t;
            ABSDynamicUpdate upd = (ABSDynamicUpdate) params[0];
            thisR.setUpdate(upd);
            return ABSUnit.UNIT;
        }
    });
}
Also used : ABSDynamicObject(org.abs_models.backend.java.lib.runtime.ABSDynamicObject) ABSClosure(org.abs_models.backend.java.lib.runtime.ABSClosure) ABSDynamicProduct(org.abs_models.backend.java.lib.runtime.ABSDynamicProduct) ABSUnit(org.abs_models.backend.java.lib.types.ABSUnit) List(java.util.List) ABSDynamicUpdate(org.abs_models.backend.java.lib.runtime.ABSDynamicUpdate) ABSValue(org.abs_models.backend.java.lib.types.ABSValue) ABSString(org.abs_models.backend.java.lib.types.ABSString) ABSDynamicReconfiguration(org.abs_models.backend.java.lib.runtime.ABSDynamicReconfiguration)

Aggregations

ABSString (org.abs_models.backend.java.lib.types.ABSString)10 ABSClosure (org.abs_models.backend.java.lib.runtime.ABSClosure)8 ABSDynamicObject (org.abs_models.backend.java.lib.runtime.ABSDynamicObject)8 ABSValue (org.abs_models.backend.java.lib.types.ABSValue)8 ABSUnit (org.abs_models.backend.java.lib.types.ABSUnit)4 ABSDynamicProduct (org.abs_models.backend.java.lib.runtime.ABSDynamicProduct)3 ABSDynamicReconfiguration (org.abs_models.backend.java.lib.runtime.ABSDynamicReconfiguration)3 ABSDynamicClass (org.abs_models.backend.java.lib.runtime.ABSDynamicClass)2 ABSDynamicFeature (org.abs_models.backend.java.lib.runtime.ABSDynamicFeature)2 ABSDynamicUpdate (org.abs_models.backend.java.lib.runtime.ABSDynamicUpdate)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Scanner (java.util.Scanner)1 ABSDynamicDelta (org.abs_models.backend.java.lib.runtime.ABSDynamicDelta)1 ABSDynamicProductLine (org.abs_models.backend.java.lib.runtime.ABSDynamicProductLine)1 COG (org.abs_models.backend.java.lib.runtime.COG)1 ABSBool (org.abs_models.backend.java.lib.types.ABSBool)1