Package org.openquark.gems.client

Examples of org.openquark.gems.client.FunctionalAgentGem


            //create the message reflector
            ReflectorGem messagePropertyReflector = new ReflectorGem (bindingContext.getCollector(md.getPropertyDescription()));
            gemGraph.addGem(messagePropertyReflector);

            //create the gem to compute this metric
            FunctionalAgentGem computeMetricGem = new FunctionalAgentGem(calServices.getGemEntity(md.getGemName()));
            gemGraph.addGem(computeMetricGem);
               
            //create the collector gem for this metric
            CollectorGem metricGem = new CollectorGem ();
            metricGem.setName(makeCollectorName(md.getInternalName()));
            gemGraph.addGem(metricGem);
           
            gemGraph.connectGems( messagePropertyReflector.getOutputPart(), computeMetricGem.getInputPart(0));
            gemGraph.connectGems( computeMetricGem.getOutputPart(), metricGem.getInputPart(0));
           
            bindingContext.addCollector(md, metricGem);
           
            assert graphIsValid() : gemGraph.toString();
        }
View Full Code Here


        Gem result = null;
       
        for (int gemN = 0; gemN < boundGemList.size(); ++gemN) {
            BoundGemDescription gemDescription = boundGemList.get(gemN);
                      
            FunctionalAgentGem zipGem = new FunctionalAgentGem(calServices.getGemEntity(zippingGems[gemDescription.getVariableBindingCount()]));
            FunctionalAgentGem zippingFunctionGem = new FunctionalAgentGem(calServices.getGemEntity(gemDescription.getQualifiedName()));
                 
            gemGraph.addGem(zipGem);
            gemGraph.addGem(zippingFunctionGem);

            connectInputs (zipGem, zippingFunctionGem, gemDescription, gemGraph);
           
            if (result == null) {
                result = zipGem;
            } else {
                FunctionalAgentGem zipGem2 = new FunctionalAgentGem(calServices.getGemEntity(CAL_List.Functions.zipWith));
                gemGraph.addGem (zipGem2);
               
                FunctionalAgentGem andGem = new FunctionalAgentGem(calServices.getGemEntity(CAL_Prelude.Functions.and));
                gemGraph.addGem (andGem);
                andGem.getInputPart(0).setBurnt(true);
                andGem.getInputPart(1).setBurnt(true);
               
                gemGraph.connectGems(andGem.getOutputPart(), zipGem2.getInputPart(0));
                gemGraph.connectGems(zipGem.getOutputPart(), zipGem2.getInputPart(1));
                gemGraph.connectGems(result.getOutputPart(), zipGem2.getInputPart(2));
               
                result = zipGem2;
               
View Full Code Here

     *
     * @param triggerResultGem
     * @param actionResultGem
     */
    private void finishGemGraph (Gem triggerResultGem, Gem actionResultGem) {
        FunctionalAgentGem zipGem = new FunctionalAgentGem(calServices.getGemEntity(CAL_List.Functions.zipWith));
        gemGraph.addGem (zipGem);
       
        FunctionalAgentGem andGem = new FunctionalAgentGem(calServices.getGemEntity(CAL_Prelude.Functions.and));
        gemGraph.addGem (andGem);
        andGem.getInputPart(0).setBurnt(true);
        andGem.getInputPart(1).setBurnt(true);
       
        gemGraph.connectGems(andGem.getOutputPart(), zipGem.getInputPart(0));
        gemGraph.connectGems(triggerResultGem.getOutputPart(), zipGem.getInputPart(1));
        gemGraph.connectGems(actionResultGem.getOutputPart(), zipGem.getInputPart(2));
       
        Gem toIteratorGem = new FunctionalAgentGem(calServices.getGemEntity(CAL_List.Functions.toJIterator));
        gemGraph.addGem(toIteratorGem);
       
        gemGraph.connectGems(zipGem.getOutputPart(), toIteratorGem.getInputPart(0));          
        gemGraph.connectGems( toIteratorGem.getOutputPart(), gemGraph.getTargetCollector().getInputPart(0));
    }
View Full Code Here

        return resultGem;
    }

    private Gem appendGems(BasicCALServices calServices, GemGraph gemGraph, Gem gem1, Gem gem2) {
       
        Gem appendGem = new FunctionalAgentGem(calServices.getGemEntity(QualifiedName.makeFromCompoundName("Cal.Samples.BusinessActivityMonitor.BAM.appendStrings")));
        gemGraph.addGem(appendGem);
               
        if  ( !(gem1 instanceof ValueGem)) {
            appendGem.getInputPart(0).setBurnt(true);
        }
        if ( !(gem2 instanceof ValueGem)) {
            appendGem.getInputPart(1).setBurnt(true);
        }
       
        switch (appendGem.getTargetInputs().size()) {
        case 2:
            gemGraph.connectGems(gem1.getOutputPart(), appendGem.getInputPart(0));
            gemGraph.connectGems(gem2.getOutputPart(), appendGem.getInputPart(1));
            return appendGem;
        case 1:
            Gem mapGem = new FunctionalAgentGem(calServices.getGemEntity(CAL_List.Functions.map));
            gemGraph.addGem(mapGem);
            gemGraph.connectGems(appendGem.getOutputPart(), mapGem.getInputPart(0));
           
            if (!(gem1 instanceof ValueGem)) {
                gemGraph.connectGems(gem1.getOutputPart(), mapGem.getInputPart(1));
                gemGraph.connectGems(gem2.getOutputPart(), appendGem.getInputPart(1));
            } else {
                gemGraph.connectGems(gem2.getOutputPart(), mapGem.getInputPart(1));
                gemGraph.connectGems(gem1.getOutputPart(), appendGem.getInputPart(0));
            }
            return mapGem;
           
        default:
            Gem zipGem = new FunctionalAgentGem(calServices.getGemEntity(CAL_List.Functions.zipWith));
            gemGraph.addGem(zipGem);
            gemGraph.connectGems(appendGem.getOutputPart(), zipGem.getInputPart(0));
            gemGraph.connectGems(gem1.getOutputPart(), zipGem.getInputPart(1));
            gemGraph.connectGems(gem2.getOutputPart(), zipGem.getInputPart(2));
            return zipGem;         
        }

    }
View Full Code Here

            ModuleTypeInfo currentModuleTypeInfo = tableTopExplorerOwner.getCurrentModuleTypeInfo();
            if (currentModuleTypeInfo == null) {
                return null;
            }
            ScopedEntityNamingPolicy namingPolicy = new UnqualifiedUnlessAmbiguous(currentModuleTypeInfo);
            FunctionalAgentGem functionalAgentGem = (FunctionalAgentGem) gem;
            return functionalAgentGem.getGemEntity().getAdaptedName(namingPolicy);

        } else if (gem instanceof CodeGem) {
            return ((CodeGem)gem).getUnqualifiedName();

        } else if (gem instanceof ValueGem) {
View Full Code Here

     * @return An icon that will be rendered as part of a gem node in the explorer tree
     */       
    protected ImageIcon getGemDisplayIcon(Gem gem) {
        // different icons for each type of gem
        if (gem instanceof FunctionalAgentGem) {
            FunctionalAgentGem functionalAgentGem = (FunctionalAgentGem) gem;
            FunctionalAgent functionalAgent = functionalAgentGem.getGemEntity().getFunctionalAgent();

            if (functionalAgent instanceof Function || functionalAgent instanceof ClassMethod) {
                return supercombinatorIcon;
            } else if (functionalAgent instanceof DataConstructor) {
                return constructorIcon;
View Full Code Here

    public FunctionalAgentGem makeFunctionalAgentGem(QualifiedName functionalAgentName) {
        GemEntity gemEntity = calServices.getGemEntity(functionalAgentName);
        if (gemEntity == null)
            return null;
   
        return new FunctionalAgentGem (gemEntity);
    }
View Full Code Here

TOP

Related Classes of org.openquark.gems.client.FunctionalAgentGem

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.