Package rocket.generator.rebind.method

Examples of rocket.generator.rebind.method.NewMethod


    Checker.notNull("parameter:rpc", rpc);

    final NewType factoryBean = rpc.getFactoryBean();

    final Method method = factoryBean.getMostDerivedMethod(Constants.SATISFY_PROPERTIES, this.getParameterListWithOnlyObject());
    final NewMethod newMethod = method.copy(factoryBean);
    newMethod.setAbstract(false);
    newMethod.setFinal(true);
    newMethod.setNative(false);

    final SetPropertiesTemplatedFile body = new SetPropertiesTemplatedFile();
    newMethod.setBody(body);

    final NewMethodParameter instanceParameter = (NewMethodParameter) newMethod.getParameters().get(0);
    instanceParameter.setFinal(true);
    instanceParameter.setName(Constants.SATISFY_PROPERTIES_INSTANCE_PARAMETER);

    final Type serviceDefTarget = this.getServiceDefTarget();
    body.setBean(serviceDefTarget);
View Full Code Here


    Checker.notNull("parameter:testBuilder", testBuilder);

    final GeneratorContext context = this.getGeneratorContext();

    final Method method = this.getTestBuilder().findMethod(Constants.BUILD_CANDIDATES_METHOD, Collections.EMPTY_LIST);
    final NewMethod newMethod = method.copy(testBuilder);
    newMethod.setAbstract(false);
    newMethod.setFinal(true);
    newMethod.setNative(false);

    final BuildCandidatesTemplatedFile body = new BuildCandidatesTemplatedFile();
    newMethod.setBody(body);

    final Type voidType = this.getGeneratorContext().getVoid();

    final List<Method> methods = new ArrayList<Method>();
View Full Code Here

    parameters.add(context.getString());
    parameters.add(this.getObjectInputStream());

    final Method method = reader.getMostDerivedMethod(SerializationConstants.CLIENT_OBJECT_READER_IMPL_NEW_INSTANCE_METHOD,
        parameters);
    final NewMethod newMethod = method.copy(reader);
    newMethod.setAbstract(false);

    final NewArrayInstanceTemplatedFile populateNewArray = new NewArrayInstanceTemplatedFile();
    populateNewArray.setType(arrayType.getComponentType());
    newMethod.setBody(populateNewArray);

    context.debug("Overridden " + newMethod);
  }
View Full Code Here

    parameters.add(context.getString());
    parameters.add(this.getObjectInputStream());

    final Method method = reader.getMostDerivedMethod(SerializationConstants.CLIENT_OBJECT_READER_IMPL_NEW_INSTANCE_METHOD,
        parameters);
    final NewMethod newMethod = method.copy(reader);
    newMethod.setAbstract(false);

    final Constructor constructor = type.getConstructor(Collections.EMPTY_LIST);
    final NewInstanceTemplatedFile newInstanceStatement = new NewInstanceTemplatedFile();
    newInstanceStatement.setConstructor(constructor);

    final CodeBlock returnStatement = new CodeBlock() {
      public boolean isEmpty() {
        return false;
      }

      public void write(final SourceWriter writer) {
        writer.print("return ");
        newInstanceStatement.write(writer);
      }
    };

    newMethod.setBody(returnStatement);

    context.debug("Overridden " + newMethod);
  }
View Full Code Here

    parameterTypes.add(context.getObject());
    final Type objectInputStreamType = this.getObjectInputStream();
    parameterTypes.add(objectInputStreamType);

    final Method method = reader.getMostDerivedMethod(SerializationConstants.CLIENT_OBJECT_READER_IMPL_READ_METHOD, parameterTypes);
    final NewMethod newMethod = method.copy(reader);
    newMethod.setNative(false);

    // rename parameters to the same names used in templates...
    final List<MethodParameter> newMethodParameters = (List<MethodParameter>) newMethod.getParameters();
    final NewMethodParameter object = (NewMethodParameter) newMethodParameters.get(0);
    object.setName(SerializationConstants.CLIENT_OBJECT_READER_IMPL_READ_INSTANCE_PARAMETER);
    object.setFinal(true);

    final NewMethodParameter objectInputStreamParameter = (NewMethodParameter) newMethodParameters.get(1);
    objectInputStreamParameter.setName(SerializationConstants.CLIENT_OBJECT_READER_IMPL_READ_OBJECT_INPUT_STREAM_PARAMETER);
    objectInputStreamParameter.setFinal(true);

    final ReadTemplatedFile body = new ReadTemplatedFile();
    body.setType(type);
    newMethod.setBody(body);

    context.debug("Overridden " + newMethod);
  }
View Full Code Here

    Checker.notNull("parameter:reader", reader);
    Checker.notNull("parameter:type", type);

    final GeneratorContext context = this.getGeneratorContext();

    final NewMethod newMethod = reader.newMethod();
    newMethod.setAbstract(false);
    newMethod.setFinal(true);
    newMethod.setName(SerializationConstants.CLIENT_OBJECT_READER_IMPL_READ_FIELDS_METHOD);
    newMethod.setReturnType(context.getVoid());
    newMethod.setStatic(false);
    newMethod.setVisibility(Visibility.PUBLIC);

    // rename parameters to the same names used in templates...
    final NewMethodParameter object = newMethod.newParameter();
    object.setName(SerializationConstants.CLIENT_OBJECT_READER_IMPL_READ_INSTANCE_PARAMETER);
    object.setFinal(true);
    object.setType(type);

    final NewMethodParameter objectInputStream = newMethod.newParameter();
    objectInputStream.setName(SerializationConstants.CLIENT_OBJECT_READER_IMPL_READ_FIELDS_OBJECT_INPUT_STREAM_PARAMETER);
    objectInputStream.setFinal(true);
    objectInputStream.setType(this.getObjectInputStream());

    final ReadFieldsTemplatedFile body = new ReadFieldsTemplatedFile();
    newMethod.setBody(body);
    body.setType(type);

    // add all fields to the template
    final Iterator<Field> fields = this.filterSerializableFields(type.getFields()).iterator();
    int fieldCount = 0;
View Full Code Here

    context.info("Overriding " + Constants.FIND_LOGGER_METHOD);

    final List<Type> findLoggerMethodArguments = Collections.nCopies(1, context.getString());
    final Method method = loggerFactory.findMostDerivedMethod(Constants.FIND_LOGGER_METHOD, findLoggerMethodArguments);

    final NewMethod newMethod = method.copy(loggerFactory);
    newMethod.setAbstract(false);
    newMethod.setFinal(true);
    newMethod.setNative(false);

    final FindLoggerTemplatedFile template = new FindLoggerTemplatedFile();
    newMethod.setBody(template);

    final LoggingFactoryConfig config = this.getLoggingFactoryConfig();
    context.debug("Config: " + config);

    final Iterator<String> names = config.getNames();
    while (names.hasNext()) {
      final String name = names.next();
      final String loggerTypeName = config.getTypeName(name);
      final LoggingLevel loggingLevel = config.getLoggingLevel(name);

      context.debug(name + "=" + loggerTypeName + " (" + loggingLevel + ")");

      final Constructor loggingLevelLogger = this.getConstructorForLoggingLevel(loggingLevel);
      final Constructor logger = this.getTargetLoggerConstructor(loggerTypeName);

      template.register(name, loggingLevelLogger, logger);
    }

    // rename parameter to a known name which matches the variable named
    // used in templates.
    final NewMethodParameter parameter = (NewMethodParameter) newMethod.getParameters().get(0);
    parameter.setName(Constants.FIND_LOGGER_NAME_PARAMETER);
    parameter.setFinal(true);

    context.unbranch();
  }
View Full Code Here

    final List createDefaultLoggerMethodArguments = Collections.nCopies(1, context.getString());
    final Method method = loggerFactory.findMostDerivedMethod(Constants.CREATE_ROOT_LOGGER_METHOD,
        createDefaultLoggerMethodArguments);

    final NewMethod newMethod = method.copy(loggerFactory);
    newMethod.setAbstract(false);
    newMethod.setFinal(true);
    newMethod.setNative(false);

    final String category = LoggingConstants.ROOT_LOGGER_NAME;
    final LoggingFactoryConfig config = this.getLoggingFactoryConfig();

    final CreateRootLoggerTemplatedFile createLogger = new CreateRootLoggerTemplatedFile();
    newMethod.setBody(createLogger);

    final LoggingLevel loggingLevel = config.getLoggingLevel(category);
    createLogger.setLevelLogger(this.getConstructorForLoggingLevel(loggingLevel));

    final String typeName = config.getTypeName(category);
    createLogger.setLogger(this.getTargetLoggerConstructor(typeName));

    context.debug("Type: " + typeName);

    // rename parameter to a known name.
    final NewMethodParameter parameter = (NewMethodParameter) newMethod.getParameters().get(0);
    parameter.setName(Constants.CREATE_ROOT_NAME_PARAMETER);
    parameter.setFinal(true);

    context.unbranch();
  }
View Full Code Here

    final GeneratorContext context = this.getGeneratorContext();
    context.branch();
    context.debug("Overriding " + Constants.READ_FIELDS_METHOD + "() and creating list setters for type \"" + deserializer.getName()
        + "\".");

    final NewMethod readFields = deserializer.newMethod();
    readFields.setAbstract(false);
    readFields.setFinal(false);
    readFields.setName(Constants.READ_FIELDS_METHOD);
    readFields.setNative(false);
    readFields.setReturnType(context.getVoid());
    readFields.setStatic(false);
    readFields.setVisibility(Visibility.PROTECTED);

    final NewMethodParameter readFieldsJsonObjectParameter = readFields.newParameter();
    readFieldsJsonObjectParameter.setFinal(true);
    readFieldsJsonObjectParameter.setName("jsonObject");
    final Type jsonObjectType = this.getJsonObject();
    readFieldsJsonObjectParameter.setType(jsonObjectType);

    final NewMethodParameter readFieldsInstanceParameter = readFields.newParameter();
    readFieldsInstanceParameter.setFinal(true);
    readFieldsInstanceParameter.setName("instance");
    readFieldsInstanceParameter.setType(type);

    final CodeBlockList body = new CodeBlockList();
    readFields.setBody(body);

    final Type stringType = context.getString();

    final Iterator fields = type.getFields().iterator();
    while (fields.hasNext()) {
      final Field field = (Field) fields.next();
      if (field.isStatic() || field.isTransient()) {
        continue;
      }
      if (field.isFinal()) {
        throwFinalFieldsCannotBeDeserialized(field);
      }

      final SetFieldTemplatedFile writeMethodBody = new SetFieldTemplatedFile();
      writeMethodBody.setField(field);

      // create the setter method itself.
      final NewMethod setter = deserializer.newMethod();
      setter.setAbstract(false);
      setter.setFinal(false);
      setter.setName(GeneratorHelper.buildSetterName(field.getName()));
      setter.setNative(true);
      setter.setReturnType(context.getVoid());
      setter.setStatic(false);
      setter.setVisibility(Visibility.PRIVATE);
      setter.setBody(writeMethodBody);

      // add its instance parameter
      final NewMethodParameter setterInstanceParameter = setter.newParameter();
      setterInstanceParameter.setFinal(true);
      setterInstanceParameter.setName(Constants.SET_FIELD_INSTANCE_PARAMETER);
      setterInstanceParameter.setType(type);

      // add the value parameter
      final NewMethodParameter setterValueParameter = setter.newParameter();
      setterValueParameter.setFinal(true);
      setterValueParameter.setName(Constants.SET_FIELD_VALUE_PARAMETER);
      setterValueParameter.setType(field.getType());

      final Type fieldType = field.getType();

      if (fieldType.equals(context.getLong())) {
        setter.addMetaData("com.google.gwt.core.client.UnsafeNativeLong", "");
      }

      context.debug("Created setter for field " + field + " setter method " + setter);

      // simple type ?
View Full Code Here

        prefetchUrl = url;
      }
    }

    // time to write the contents of the method.
    final NewMethod newMethod = method.copy(newType);
    newMethod.setAbstract(false);
    newMethod.setFinal(true);
    newMethod.setNative(false);

    final CreateImageTemplatedFile body = new CreateImageTemplatedFile();
    body.setUrl(url);
    body.setType(imageType);
    newMethod.setBody(body);

    context.unbranch();

    return prefetchUrl;
  }
View Full Code Here

TOP

Related Classes of rocket.generator.rebind.method.NewMethod

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.