/*
* Copyright 2012 LinkedIn Corp.
*
* Licensed 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 azkaban.webapp.plugin;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class ViewerPlugin {
private final String pluginName;
private final String pluginPath;
private final int order;
private boolean hidden;
private final List<String> jobTypes;
public static final Comparator<ViewerPlugin> COMPARATOR =
new Comparator<ViewerPlugin>() {
@Override
public int compare(ViewerPlugin o1, ViewerPlugin o2) {
if (o1.getOrder() != o2.getOrder()) {
return o1.getOrder() - o2.getOrder();
}
return o1.getPluginName().compareTo(o2.getPluginName());
}
};
public ViewerPlugin(String pluginName, String pluginPath, int order,
boolean hidden, String jobTypes) {
this.pluginName = pluginName;
this.pluginPath = pluginPath;
this.order = order;
this.setHidden(hidden);
this.jobTypes = parseJobTypes(jobTypes);
}
public String getPluginName() {
return pluginName;
}
public String getPluginPath() {
return pluginPath;
}
public int getOrder() {
return order;
}
public boolean isHidden() {
return hidden;
}
public void setHidden(boolean hidden) {
this.hidden = hidden;
}
protected List<String> parseJobTypes(String jobTypesStr) {
if (jobTypesStr == null) {
return null;
}
String[] parts = jobTypesStr.split(",");
List<String> jobTypes = new ArrayList<String>();
for (int i = 0; i < parts.length; ++i) {
jobTypes.add(parts[i].trim());
}
return jobTypes;
}
public List<String> getJobTypes() {
return jobTypes;
}
}