encoder.writeByte(Implementation.MODULE.getId());
encoder.writeString(moduleComponentSelector.getGroup());
encoder.writeString(moduleComponentSelector.getModule());
encoder.writeString(moduleComponentSelector.getVersion());
} else if(value instanceof DefaultProjectComponentSelector) {
ProjectComponentSelector projectComponentSelector = (ProjectComponentSelector)value;
encoder.writeByte(Implementation.BUILD.getId());
encoder.writeString(projectComponentSelector.getProjectPath());
} else {
throw new IllegalArgumentException("Unsupported component selector class: " + value.getClass());
}
}