Java tutorial
/* * Copyright (C) 2017 Baifendian Corporation * * 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 com.baifendian.swordfish.common.job.struct.node.mr; import com.baifendian.swordfish.common.job.struct.node.BaseParam; import com.baifendian.swordfish.common.job.struct.resource.ResourceInfo; import com.baifendian.swordfish.dao.model.flow.Property; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.ListUtils; import org.apache.commons.lang3.StringUtils; /** * MR ? <p> */ public class MrParam extends BaseParam { /** * jar?? */ private ResourceInfo mainJar; /** * ? */ private String mainClass; /** * ?? */ private String args; /** * ?? */ private List<Property> properties; /** * ? jar ? */ private List<ResourceInfo> libJars; /** * ???? */ private List<ResourceInfo> files; /** * ???? */ private List<ResourceInfo> archives; /** * */ private String queue; public ResourceInfo getMainJar() { return mainJar; } public void setMainJar(ResourceInfo mainJar) { this.mainJar = mainJar; } public String getMainClass() { return mainClass; } public void setMainClass(String mainClass) { this.mainClass = mainClass; } public String getArgs() { return args; } public void setArgs(String args) { this.args = args; } public List<Property> getProperties() { return properties; } public void setProperties(List<Property> properties) { this.properties = properties; } public List<ResourceInfo> getLibJars() { return libJars; } public void setLibJars(List<ResourceInfo> libJars) { this.libJars = libJars; } public List<ResourceInfo> getFiles() { return files; } public void setFiles(List<ResourceInfo> files) { this.files = files; } public List<ResourceInfo> getArchives() { return archives; } public void setArchives(List<ResourceInfo> archives) { this.archives = archives; } public String getQueue() { return queue; } public void setQueue(String queue) { this.queue = queue; } /** * @return */ public List<String> getDArgs() { if (CollectionUtils.isEmpty(properties)) { return ListUtils.EMPTY_LIST; } return properties.stream().map(prop -> prop.getProp() + "=" + prop.getValue()).collect(Collectors.toList()); } @Override public boolean checkValid() { return mainJar != null && StringUtils.isNotEmpty(mainClass); } @Override public List<String> getProjectResourceFiles() { List<String> resFiles = new ArrayList<>(); if (mainJar.isProjectScope()) { resFiles.add(mainJar.getRes()); } addProjectResourceFiles(libJars, resFiles); addProjectResourceFiles(files, resFiles); addProjectResourceFiles(archives, resFiles); return resFiles; } }