// Copyright 2015 Pants project contributors (see CONTRIBUTORS.md). // Licensed under the Apache License, Version 2.0 (see LICENSE). package com.twitter.intellij.pants.service.project.metadata; import com.intellij.openapi.externalSystem.model.Key; import com.intellij.openapi.externalSystem.model.ProjectKeys; import com.intellij.openapi.externalSystem.model.ProjectSystemId; import com.intellij.openapi.externalSystem.model.project.AbstractExternalEntityData; import com.twitter.intellij.pants.model.TargetAddressInfo; import org.jetbrains.annotations.NotNull; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Set; public class TargetMetadata extends AbstractExternalEntityData { private static final long serialVersionUID = 1L; @NotNull public static final Key<TargetMetadata> KEY = Key.create(TargetMetadata.class, ProjectKeys.MODULE.getProcessingWeight() + 1); private final String myModuleName; private Set<String> myLibraryExcludes = Collections.emptySet(); private Set<String> myTargetAddresses = Collections.emptySet(); private Set<TargetAddressInfo> myTargetAddressInfoSet = Collections.emptySet(); public TargetMetadata(ProjectSystemId systemId, @NotNull String moduleName) { super(systemId); myModuleName = moduleName; } @NotNull public String getModuleName() { return myModuleName; } @NotNull public Set<String> getTargetAddresses() { return myTargetAddresses; } public void setTargetAddresses(Collection<String> targetAddresses) { myTargetAddresses = new HashSet<String>(targetAddresses); } public Set<TargetAddressInfo> getTargetAddressInfoSet() { return myTargetAddressInfoSet; } public void setTargetAddressInfoSet(Set<TargetAddressInfo> targetAddressInfoSet) { myTargetAddressInfoSet = new HashSet<TargetAddressInfo>(targetAddressInfoSet); } @NotNull public Set<String> getLibraryExcludes() { return myLibraryExcludes; } public void setLibraryExcludes(Set<String> libraryExcludes) { myLibraryExcludes = libraryExcludes; } }