| package com.intellij.openapi.externalSystem.model.project; |
| |
| /** |
| * Enumerates module source types. |
| * |
| * @author Denis Zhdanov |
| * @since 8/10/11 5:21 PM |
| */ |
| public enum ExternalSystemSourceType implements IExternalSystemSourceType { |
| |
| SOURCE(false, false, false, false), |
| TEST(true, false, false, false), |
| EXCLUDED(false, false, false, true), |
| SOURCE_GENERATED(true, true, false, false), |
| TEST_GENERATED(true, true, false, false), |
| RESOURCE(false, false, true, false), |
| TEST_RESOURCE(true, false, true, false); |
| |
| private final boolean isTest; |
| private final boolean isGenerated; |
| private final boolean isResource; |
| private final boolean isExcluded; |
| |
| ExternalSystemSourceType(boolean test, boolean generated, boolean resource, boolean excluded) { |
| isTest = test; |
| isGenerated = generated; |
| isResource = resource; |
| isExcluded = excluded; |
| } |
| |
| @Override |
| public boolean isTest() { |
| return isTest; |
| } |
| |
| @Override |
| public boolean isGenerated() { |
| return isGenerated; |
| } |
| |
| @Override |
| public boolean isResource() { |
| return isResource; |
| } |
| |
| @Override |
| public boolean isExcluded() { |
| return isExcluded; |
| } |
| |
| public static ExternalSystemSourceType from(IExternalSystemSourceType sourceType) { |
| for (ExternalSystemSourceType systemSourceType : ExternalSystemSourceType.values()) { |
| if (systemSourceType.isGenerated == sourceType.isGenerated() && |
| systemSourceType.isResource == sourceType.isResource() && |
| systemSourceType.isTest == sourceType.isTest() && |
| systemSourceType.isExcluded == sourceType.isExcluded()) { |
| return systemSourceType; |
| } |
| } |
| throw new IllegalArgumentException("Invalid source type: " + sourceType); |
| } |
| } |