org.jreleaser.maven.plugin.AbstractAssembler Maven / Gradle / Ivy
/*
* SPDX-License-Identifier: Apache-2.0
*
* Copyright 2020-2022 The JReleaser authors.
*
* 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
*
* https://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.jreleaser.maven.plugin;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author Andres Almiray
* @since 0.2.0
*/
abstract class AbstractAssembler implements Assembler {
protected final Set output = new LinkedHashSet<>();
protected final Map extraProperties = new LinkedHashMap<>();
protected final List fileSets = new ArrayList<>();
private final Platform platform = new Platform();
protected String name;
protected boolean enabled;
protected Active active;
protected Boolean exported;
void setAll(AbstractAssembler assembler) {
this.active = assembler.active;
this.enabled = assembler.enabled;
this.exported = assembler.exported;
this.name = assembler.name;
setOutputs(assembler.output);
setExtraProperties(assembler.extraProperties);
setFileSets(assembler.fileSets);
setPlatform(assembler.platform);
}
@Override
public boolean isExported() {
return exported == null || exported;
}
@Override
public void setExported(boolean exported) {
this.exported = exported;
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public Active getActive() {
return active;
}
@Override
public void setActive(Active active) {
this.active = active;
}
@Override
public String resolveActive() {
return active != null ? active.name() : null;
}
@Override
public Set getOutputs() {
return output;
}
@Override
public void setOutputs(Set output) {
this.output.clear();
this.output.addAll(output);
}
@Override
public void addOutput(Artifact artifact) {
if (null != artifact) {
this.output.add(artifact);
}
}
@Override
public Map getExtraProperties() {
return extraProperties;
}
@Override
public void setExtraProperties(Map extraProperties) {
this.extraProperties.clear();
this.extraProperties.putAll(extraProperties);
}
@Override
public List getFileSets() {
return fileSets;
}
@Override
public void setFileSets(List fileSets) {
this.fileSets.clear();
this.fileSets.addAll(fileSets);
}
public void addFiles(List files) {
this.fileSets.addAll(files);
}
public void addFile(FileSet file) {
if (null != file) {
this.fileSets.add(file);
}
}
public Platform getPlatform() {
return platform;
}
public void setPlatform(Platform platform) {
this.platform.setAll(platform);
}
}