Skip to content
Permalink
Browse files
Refactored the tool api to allow the usage of the Java ServiceLoader …
…mechanism.
  • Loading branch information
chrisdutz committed Nov 5, 2014
1 parent afa10c7 commit 73e4a8edb2c8c95987b739195a4927093a14c4b9
Showing 3 changed files with 60 additions and 4 deletions.
@@ -55,4 +55,16 @@
<url>https://git-wip-us.apache.org/repos/asf/flex-utilities.git</url>
</scm>

<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>

</project>
@@ -25,15 +25,22 @@
*/
public interface FlexTool {

String getToolName();

String getToolGroupName();
/**
* Return the name of the tool. This name should match the names of
* tools in alternate tool groups: MXML, COMPC, ASDOC
*
* An enum was deliberately not selected in order to allow easy addition
* of new future tools without having to touch the tool-api.
* @return Symbolic name of this tool.
*/
String getName();

/**
* Execute the flex tool and pass in an array of commandline arguments.
*
* @param args arguments passed to the tool.
* @return the return code returned by the tool.
*/
int executeTool(String[] args);
int execute(String[] args);

}
@@ -0,0 +1,37 @@
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

package org.apache.flex.tools;

import java.util.Collection;

/**
* Interface for defining a group of flex tools. Classes implementing this
* interface will allow loading of flex tools using the java ServiceLoader
* mechanism.
*/
public interface FlexToolGroup {

String getName();

Collection<String> getFlexToolNames();

FlexTool getFlexTool(String name);

}

0 comments on commit 73e4a8e

Please sign in to comment.