All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jd.blockchain.contract.archiver.CodeSettings Maven / Gradle / Ivy

package com.jd.blockchain.contract.archiver;

import java.io.File;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Set;

/**
 * The configuration about the code of contract.
 * 
 * @author huanghaiquan
 *
 */
public class CodeSettings {

	private File codebaseDirectory;

	private Set includeSet = new LinkedHashSet();
	private Set excludeSet = new LinkedHashSet();


	/**
	 * The full name of interface which declares the contract event methods;
	 */
	private String declaringInterface;

	/**
	 * The full name of class which implements the contract interface;
	 */
	private String implementClass;
	
	/**
	 * 代码类的编译出输出目录;
	 * 
	 * @param codebaseDirectory
	 */
	public CodeSettings(File codebaseDirectory) {
		this.codebaseDirectory = codebaseDirectory;
	}

	public File getCodebaseDirectory() {
		return codebaseDirectory;
	}

	public String[] getIncludes() {
		return includeSet.toArray(new String[includeSet.size()]);
	}

	public String[] getExcludes() {
		return excludeSet.toArray(new String[excludeSet.size()]);
	}

	public void addIncludes(String... includes) {
		if (includes != null) {
			includeSet.addAll(Arrays.asList(includes));
		}
	}

	public void addExcludes(String... excludes) {
		if (excludes != null) {
			excludeSet.addAll(Arrays.asList(excludes));
		}
	}

	public void addIncludes(Collection includes) {
		includeSet.addAll(includes);
	}

	public void addExcludes(Collection excludes) {
		excludeSet.addAll(excludes);
	}

	public String getDeclaringInterface() {
		return declaringInterface;
	}

	public void setDeclaringInterface(String declaringInterface) {
		this.declaringInterface = declaringInterface;
	}

	public String getImplementClass() {
		return implementClass;
	}

	public void setImplementClass(String implementClass) {
		this.implementClass = implementClass;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy