blob: 0e112b1c2b149f37a73b72219ea0e6840263d7bf [file] [log] [blame]
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);
}
}