You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by "Tom Beerbower (JIRA)" <ji...@apache.org> on 2014/01/21 19:14:19 UTC

[jira] [Created] (AMBARI-4375) Ambari-SCOM : Remove Resource.Type switch statements.

Tom Beerbower created AMBARI-4375:
-------------------------------------

             Summary: Ambari-SCOM : Remove Resource.Type switch statements.
                 Key: AMBARI-4375
                 URL: https://issues.apache.org/jira/browse/AMBARI-4375
             Project: Ambari
          Issue Type: Improvement
            Reporter: Tom Beerbower
            Assignee: Tom Beerbower


Currently Resource.Type is an enum.  In order to allow for the extension of resources by adding new types it should be converted to a class.  One thing that prevents this is the use of the Type enum in switch statements ...

{code}
   switch (type) {
      case Cluster:
        return new ClusterProvider(clusterDefinition);
      case Service:
        return new ServiceProvider(clusterDefinition);
      case Component:
        return new ComponentProvider(clusterDefinition);
      case Host:
        return new HostProvider(clusterDefinition);
      case HostComponent:
        return new HostComponentProvider(clusterDefinition);
      case Request:
        return new RequestProvider(clusterDefinition);
      case Task:
        return new TaskProvider(clusterDefinition);
      default:
        return new NoOpProvider(type, clusterDefinition);
    }
{code}

We should convert these usages to a static Map<Type, ResourceProvider> lookup if possible, or if statements.

It looks like this needs to be done in AbstractResourceProvider and SQLProviderModule for Ambari SCOM.


 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)