Examples of MixinDefinition


Examples of org.codehaus.aspectwerkz.definition.MixinDefinition

     * @param mixinClass
     * @param visibleFrom
     * @return
     */
    public static MixinDefinition getMixinDefinition(Class mixinClass, ClassLoader visibleFrom) {
        MixinDefinition mixinDefinition = null;

        Set definitions = SystemDefinitionContainer.getDefinitionsFor(visibleFrom);
        for (Iterator iterator = definitions.iterator(); iterator.hasNext() && mixinDefinition == null;) {
            SystemDefinition systemDefinition = (SystemDefinition) iterator.next();
            for (Iterator iterator1 = systemDefinition.getMixinDefinitions().iterator(); iterator1.hasNext();) {
                MixinDefinition mixinDef = (MixinDefinition) iterator1.next();
                if (mixinClass.getName().replace('/', '.').equals(mixinDef.getMixinImpl().getName())) {
                    mixinDefinition = mixinDef;
                    break;
                }
            }
        }
View Full Code Here

Examples of org.codehaus.aspectwerkz.definition.MixinDefinition

     * Creates a new mixin factory.
     *
     * @param mixinClass the mixin class
     */
    private static MixinFactory createMixinFactory(final Class mixinClass) {
        MixinDefinition mixinDefinition = null;

        Set definitions = SystemDefinitionContainer.getRegularAndVirtualDefinitionsFor(mixinClass.getClassLoader());
        for (Iterator iterator = definitions.iterator(); iterator.hasNext() && mixinDefinition == null;) {
            SystemDefinition systemDefinition = (SystemDefinition) iterator.next();
            for (Iterator iterator1 = systemDefinition.getMixinDefinitions().iterator(); iterator1.hasNext();) {
                MixinDefinition mixinDef = (MixinDefinition) iterator1.next();
                if (mixinClass.getName().replace('/', '.').equals(mixinDef.getMixinImpl().getName())) {
                    mixinDefinition = mixinDef;
                    break;
                }
            }
        }
View Full Code Here

Examples of org.codehaus.aspectwerkz.definition.MixinDefinition

                final InterfaceIntroductionDefinition interfaceIntroDef = (InterfaceIntroductionDefinition) it2.next();
                interfacesToAdd.addAll(interfaceIntroDef.getInterfaceClassNames());
            }
            final List mixinDefinitions = systemDefinition.getMixinDefinitions(ctx);
            for (Iterator it2 = mixinDefinitions.iterator(); it2.hasNext();) {
                final MixinDefinition mixinDef = (MixinDefinition) it2.next();
                final List interfaceList = mixinDef.getInterfaces();
                for (Iterator it3 = interfaceList.iterator(); it3.hasNext();) {
                    final ClassInfo classInfo = (ClassInfo) it3.next();
                    interfacesToAdd.add(classInfo.getName());
                }
            }
View Full Code Here

Examples of org.codehaus.aspectwerkz.definition.MixinDefinition

    private void addMixinMembers() {
        int index = 0;
        for (Iterator it = m_ctx.getDefinitions().iterator(); it.hasNext();) {
            List mixinDefs = ((SystemDefinition) it.next()).getMixinDefinitions(m_expressionContext);
            for (Iterator it2 = mixinDefs.iterator(); it2.hasNext();) {
                final MixinDefinition mixinDef = (MixinDefinition) it2.next();
                final ClassInfo mixinImpl = mixinDef.getMixinImpl();
                final int deploymentModel = DeploymentModel.getDeploymentModelAsInt(mixinDef.getDeploymentModel());
                if (m_mixinFields.containsKey(mixinImpl)) {
                    continue;
                }
                final MixinFieldInfo fieldInfo = new MixinFieldInfo();
                fieldInfo.fieldName = MIXIN_FIELD_NAME + index;
View Full Code Here

Examples of org.zkoss.zuss.metainfo.MixinDefinition

        parseExpression(ctx, expr, ';');
        new VariableDefinition(
          ctx.block.owner, name, expr, lineno);
        return;
      } else if (symbol == '{') { //mixin definition
        newBlock(ctx, new MixinDefinition(
          ctx.block.owner, name,
          new ArgumentDefinition[0], lineno));
        return;
      } else if (symbol == ';') { //use of function/mixin
        Expression expr = new Expression(ctx.block.owner, lineno);
        new FunctionValue(expr, name, lineno); //no parenthesis
        return;
      }
    } else if (t0 instanceof Op && ((Op)t0).getValue() == LPAREN) {
      //1) definition of function or mixin
      //2) use of function or mixin
      char cc = _in.peekAfterRPAREN();
      if (cc == ';' || cc == '}' || cc == EOF) { //use of function/mixin
        putback(t0);
        putback(id);
        parseExpression(ctx, new Expression(ctx.block.owner, lineno), EOPAREN);

        t0 = next(ctx);
        if (t0 instanceof Symbol) {
          switch (((Symbol)t0).getValue()) {
          case '}':
            putback(t0);
            //fall thru
          case ';':
            return; //done
          }
        }
        throw error("';' expected; not "+t0, t0);
      }

      //definition of function/mixin
      final ArgumentDefinition[] adefs = parseArguments(ctx);
      t0 = next(ctx);
      if (t0 instanceof Symbol) {
        final char symbol = ((Symbol)t0).getValue();
        if (symbol == ':') { //function definition
          Token t1 = next(ctx);
          if (t1 instanceof Keyword && ((Keyword)t1).getValue() == IMPORT) {
            t0 = next(ctx);
            if (!(t0 instanceof Other))
              throw error("a class name expected, not "+t0, t0);
            nextAndCheck(ctx, ';', true);

            final Method mtd = Classes.getMethod(
              ((Other)t0).getValue(), name, adefs.length,
              getFilename(), t0.getLine());
            new FunctionDefinition(
              ctx.block.owner, name, adefs, mtd, lineno);
            return;
          } else {
            putback(t1);
            final Expression expr = new Expression(t0.getLine());
              //note: expr is NOT a child of any node but part of VariableDefinition below
            parseExpression(ctx, expr, ';');
            new FunctionDefinition(
              ctx.block.owner, name, adefs, expr, lineno);
            return;
          }
        } else if (symbol == '{') { //mixin
          newBlock(ctx, new MixinDefinition(
            ctx.block.owner, name, adefs, lineno));
          return;
        }
      }
    }
View Full Code Here

Examples of org.zkoss.zuss.metainfo.MixinDefinition

        //spec: evaluate when it is defined (not when it is used)
    } else if (node instanceof FunctionDefinition) {
      final FunctionDefinition fd = (FunctionDefinition)node;
      scope.setVariable(fd.getName(), fd);
    } else if (node instanceof MixinDefinition) {
      final MixinDefinition fd = (MixinDefinition)node;
      scope.setVariable(fd.getName(), fd);
    } else if (node instanceof IfDefinition) { //assume not in a rule (outerSel shall be null)
      for (NodeInfo child: node.getChildren()) {
        final BlockDefinition block = (BlockDefinition)child;
        final Expression expr = block.getCondition();
        if (expr == null || isTrue(scope, expr)) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.