Package org.mokai.type.impl

Source Code of org.mokai.type.impl.TypeBuilder

package org.mokai.type.impl;

import org.mokai.Acceptor;
import org.mokai.Action;
import org.mokai.Connector;
import org.mokai.annotation.Description;
import org.mokai.annotation.Name;
import org.mokai.type.AcceptorType;
import org.mokai.type.ActionType;
import org.mokai.type.ConnectorType;

/**
*
* @author German Escobar
*/
public final class TypeBuilder {

  private TypeBuilder() {}

  public static AcceptorType buildAcceptorType(Class<? extends Acceptor> acceptorClass) {
    String name = getName(acceptorClass);
    String description = getDescription(acceptorClass);

    return new AcceptorType(name, description, acceptorClass);
  }

  public static ActionType buildActionType(Class<? extends Action> actionClass) {
    String name = getName(actionClass);
    String description = getDescription(actionClass);

    return new ActionType(name, description, actionClass);
  }

  public static ConnectorType buildConnectorType(Class<? extends Connector> connectorClass) {
    String name = getName(connectorClass);
    String description = getDescription(connectorClass);

    return new ConnectorType(name, description, connectorClass);
  }

  private static String getName(Class<?> clazz) {
    String name = "";
    if (clazz.isAnnotationPresent(Name.class)) {
      Name nameAnnotation = clazz.getAnnotation(Name.class);
      name = nameAnnotation.value();
    }

    return name;
  }

  private static String getDescription(Class<?> clazz) {
    String description = "";
    if (clazz.isAnnotationPresent(Description.class)) {
      Description descriptionAnnotation = clazz.getAnnotation(Description.class);
      description = descriptionAnnotation.value();
    }

    return description;
  }
}
TOP

Related Classes of org.mokai.type.impl.TypeBuilder

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.