diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryAttributesProto.java b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryAttributesProto.java new file mode 100644 index 00000000000..0ac0b67feb7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryAttributesProto.java @@ -0,0 +1,684 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: proto_tcs.proto + +package org.jetbrains.kotlin.gradle.idea.proto.generated.tcs; + +/** + * Protobuf type {@code org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto} + */ +public final class IdeaKotlinBinaryAttributesProto extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto) + IdeaKotlinBinaryAttributesProtoOrBuilder { +private static final long serialVersionUID = 0L; + // Use IdeaKotlinBinaryAttributesProto.newBuilder() to construct. + private IdeaKotlinBinaryAttributesProto(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private IdeaKotlinBinaryAttributesProto() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new IdeaKotlinBinaryAttributesProto(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.ProtoTcs.internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 1: + return internalGetAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.ProtoTcs.internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.class, org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.Builder.class); + } + + public static final int ATTRIBUTES_FIELD_NUMBER = 1; + private static final class AttributesDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, java.lang.String> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.ProtoTcs.internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_AttributesEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.STRING, + ""); + } + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> attributes_; + private com.google.protobuf.MapField + internalGetAttributes() { + if (attributes_ == null) { + return com.google.protobuf.MapField.emptyMapField( + AttributesDefaultEntryHolder.defaultEntry); + } + return attributes_; + } + + public int getAttributesCount() { + return internalGetAttributes().getMap().size(); + } + /** + * map<string, string> attributes = 1; + */ + + @java.lang.Override + public boolean containsAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetAttributes().getMap().containsKey(key); + } + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + /** + * map<string, string> attributes = 1; + */ + @java.lang.Override + + public java.util.Map getAttributesMap() { + return internalGetAttributes().getMap(); + } + /** + * map<string, string> attributes = 1; + */ + @java.lang.Override + + public java.lang.String getAttributesOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetAttributes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> attributes = 1; + */ + @java.lang.Override + + public java.lang.String getAttributesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetAttributes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + com.google.protobuf.GeneratedMessageV3 + .serializeStringMapTo( + output, + internalGetAttributes(), + AttributesDefaultEntryHolder.defaultEntry, + 1); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (java.util.Map.Entry entry + : internalGetAttributes().getMap().entrySet()) { + com.google.protobuf.MapEntry + attributes__ = AttributesDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, attributes__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto)) { + return super.equals(obj); + } + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto other = (org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto) obj; + + if (!internalGetAttributes().equals( + other.internalGetAttributes())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (!internalGetAttributes().getMap().isEmpty()) { + hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + internalGetAttributes().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto) + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.ProtoTcs.internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMapField( + int number) { + switch (number) { + case 1: + return internalGetAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapField internalGetMutableMapField( + int number) { + switch (number) { + case 1: + return internalGetMutableAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.ProtoTcs.internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.class, org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.Builder.class); + } + + // Construct using org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + internalGetMutableAttributes().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.ProtoTcs.internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_descriptor; + } + + @java.lang.Override + public org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto getDefaultInstanceForType() { + return org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.getDefaultInstance(); + } + + @java.lang.Override + public org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto build() { + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto buildPartial() { + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto result = new org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto(this); + int from_bitField0_ = bitField0_; + result.attributes_ = internalGetAttributes(); + result.attributes_.makeImmutable(); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto) { + return mergeFrom((org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto other) { + if (other == org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.getDefaultInstance()) return this; + internalGetMutableAttributes().mergeFrom( + other.internalGetAttributes()); + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.MapEntry + attributes__ = input.readMessage( + AttributesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableAttributes().getMutableMap().put( + attributes__.getKey(), attributes__.getValue()); + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.MapField< + java.lang.String, java.lang.String> attributes_; + private com.google.protobuf.MapField + internalGetAttributes() { + if (attributes_ == null) { + return com.google.protobuf.MapField.emptyMapField( + AttributesDefaultEntryHolder.defaultEntry); + } + return attributes_; + } + private com.google.protobuf.MapField + internalGetMutableAttributes() { + onChanged();; + if (attributes_ == null) { + attributes_ = com.google.protobuf.MapField.newMapField( + AttributesDefaultEntryHolder.defaultEntry); + } + if (!attributes_.isMutable()) { + attributes_ = attributes_.copy(); + } + return attributes_; + } + + public int getAttributesCount() { + return internalGetAttributes().getMap().size(); + } + /** + * map<string, string> attributes = 1; + */ + + @java.lang.Override + public boolean containsAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetAttributes().getMap().containsKey(key); + } + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + /** + * map<string, string> attributes = 1; + */ + @java.lang.Override + + public java.util.Map getAttributesMap() { + return internalGetAttributes().getMap(); + } + /** + * map<string, string> attributes = 1; + */ + @java.lang.Override + + public java.lang.String getAttributesOrDefault( + java.lang.String key, + java.lang.String defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetAttributes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, string> attributes = 1; + */ + @java.lang.Override + + public java.lang.String getAttributesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetAttributes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearAttributes() { + internalGetMutableAttributes().getMutableMap() + .clear(); + return this; + } + /** + * map<string, string> attributes = 1; + */ + + public Builder removeAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableAttributes().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableAttributes() { + return internalGetMutableAttributes().getMutableMap(); + } + /** + * map<string, string> attributes = 1; + */ + public Builder putAttributes( + java.lang.String key, + java.lang.String value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { + throw new NullPointerException("map value"); +} + + internalGetMutableAttributes().getMutableMap() + .put(key, value); + return this; + } + /** + * map<string, string> attributes = 1; + */ + + public Builder putAllAttributes( + java.util.Map values) { + internalGetMutableAttributes().getMutableMap() + .putAll(values); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto) + } + + // @@protoc_insertion_point(class_scope:org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto) + private static final org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto(); + } + + public static org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public IdeaKotlinBinaryAttributesProto parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryAttributesProtoOrBuilder.java b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryAttributesProtoOrBuilder.java new file mode 100644 index 00000000000..0aca5e40471 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryAttributesProtoOrBuilder.java @@ -0,0 +1,45 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: proto_tcs.proto + +package org.jetbrains.kotlin.gradle.idea.proto.generated.tcs; + +public interface IdeaKotlinBinaryAttributesProtoOrBuilder extends + // @@protoc_insertion_point(interface_extends:org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto) + com.google.protobuf.MessageOrBuilder { + + /** + * map<string, string> attributes = 1; + */ + int getAttributesCount(); + /** + * map<string, string> attributes = 1; + */ + boolean containsAttributes( + java.lang.String key); + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getAttributes(); + /** + * map<string, string> attributes = 1; + */ + java.util.Map + getAttributesMap(); + /** + * map<string, string> attributes = 1; + */ + + /* nullable */ +java.lang.String getAttributesOrDefault( + java.lang.String key, + /* nullable */ +java.lang.String defaultValue); + /** + * map<string, string> attributes = 1; + */ + + java.lang.String getAttributesOrThrow( + java.lang.String key); +} diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProto.java b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProto.java index 48a1ec3c3c2..45231f1ac77 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProto.java +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProto.java @@ -273,6 +273,32 @@ private static final long serialVersionUID = 0L; return capabilities_.get(index); } + public static final int ATTRIBUTES_FIELD_NUMBER = 6; + private org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes_; + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + * @return Whether the attributes field is set. + */ + @java.lang.Override + public boolean hasAttributes() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + * @return The attributes. + */ + @java.lang.Override + public org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto getAttributes() { + return attributes_ == null ? org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.getDefaultInstance() : attributes_; + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + @java.lang.Override + public org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoOrBuilder getAttributesOrBuilder() { + return attributes_ == null ? org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.getDefaultInstance() : attributes_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -302,6 +328,9 @@ private static final long serialVersionUID = 0L; for (int i = 0; i < capabilities_.size(); i++) { output.writeMessage(5, capabilities_.get(i)); } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeMessage(6, getAttributes()); + } getUnknownFields().writeTo(output); } @@ -327,6 +356,10 @@ private static final long serialVersionUID = 0L; size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, capabilities_.get(i)); } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, getAttributes()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -364,6 +397,11 @@ private static final long serialVersionUID = 0L; } if (!getCapabilitiesList() .equals(other.getCapabilitiesList())) return false; + if (hasAttributes() != other.hasAttributes()) return false; + if (hasAttributes()) { + if (!getAttributes() + .equals(other.getAttributes())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -395,6 +433,10 @@ private static final long serialVersionUID = 0L; hash = (37 * hash) + CAPABILITIES_FIELD_NUMBER; hash = (53 * hash) + getCapabilitiesList().hashCode(); } + if (hasAttributes()) { + hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + getAttributes().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -512,13 +554,20 @@ private static final long serialVersionUID = 0L; // Construct using org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryCoordinatesProto.newBuilder() private Builder() { - + maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + getCapabilitiesFieldBuilder(); + getAttributesFieldBuilder(); + } } @java.lang.Override public Builder clear() { @@ -538,6 +587,12 @@ private static final long serialVersionUID = 0L; capabilitiesBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000010); + if (attributesBuilder_ == null) { + attributes_ = null; + } else { + attributesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); return this; } @@ -591,6 +646,14 @@ private static final long serialVersionUID = 0L; } else { result.capabilities_ = capabilitiesBuilder_.build(); } + if (((from_bitField0_ & 0x00000020) != 0)) { + if (attributesBuilder_ == null) { + result.attributes_ = attributes_; + } else { + result.attributes_ = attributesBuilder_.build(); + } + to_bitField0_ |= 0x00000010; + } result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -686,6 +749,9 @@ private static final long serialVersionUID = 0L; } } } + if (other.hasAttributes()) { + mergeAttributes(other.getAttributes()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -745,6 +811,13 @@ private static final long serialVersionUID = 0L; } break; } // case 42 + case 50: { + input.readMessage( + getAttributesFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 50 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -1333,6 +1406,126 @@ private static final long serialVersionUID = 0L; } return capabilitiesBuilder_; } + + private org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes_; + private com.google.protobuf.SingleFieldBuilderV3< + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto, org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.Builder, org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoOrBuilder> attributesBuilder_; + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + * @return Whether the attributes field is set. + */ + public boolean hasAttributes() { + return ((bitField0_ & 0x00000020) != 0); + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + * @return The attributes. + */ + public org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto getAttributes() { + if (attributesBuilder_ == null) { + return attributes_ == null ? org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.getDefaultInstance() : attributes_; + } else { + return attributesBuilder_.getMessage(); + } + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + public Builder setAttributes(org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto value) { + if (attributesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributes_ = value; + onChanged(); + } else { + attributesBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + return this; + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + public Builder setAttributes( + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.Builder builderForValue) { + if (attributesBuilder_ == null) { + attributes_ = builderForValue.build(); + onChanged(); + } else { + attributesBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + return this; + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + public Builder mergeAttributes(org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto value) { + if (attributesBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) && + attributes_ != null && + attributes_ != org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.getDefaultInstance()) { + attributes_ = + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.newBuilder(attributes_).mergeFrom(value).buildPartial(); + } else { + attributes_ = value; + } + onChanged(); + } else { + attributesBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000020; + return this; + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + public Builder clearAttributes() { + if (attributesBuilder_ == null) { + attributes_ = null; + onChanged(); + } else { + attributesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); + return this; + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + public org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.Builder getAttributesBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getAttributesFieldBuilder().getBuilder(); + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + public org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoOrBuilder getAttributesOrBuilder() { + if (attributesBuilder_ != null) { + return attributesBuilder_.getMessageOrBuilder(); + } else { + return attributes_ == null ? + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.getDefaultInstance() : attributes_; + } + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + private com.google.protobuf.SingleFieldBuilderV3< + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto, org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.Builder, org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoOrBuilder> + getAttributesFieldBuilder() { + if (attributesBuilder_ == null) { + attributesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto, org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.Builder, org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoOrBuilder>( + getAttributes(), + getParentForChildren(), + isClean()); + attributes_ = null; + } + return attributesBuilder_; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProtoOrBuilder.java b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProtoOrBuilder.java index 744d84394dc..abc0006a020 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProtoOrBuilder.java +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProtoOrBuilder.java @@ -98,4 +98,19 @@ public interface IdeaKotlinBinaryCoordinatesProtoOrBuilder extends */ org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryCapabilityProtoOrBuilder getCapabilitiesOrBuilder( int index); + + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + * @return Whether the attributes field is set. + */ + boolean hasAttributes(); + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + * @return The attributes. + */ + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto getAttributes(); + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoOrBuilder getAttributesOrBuilder(); } diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/ProtoTcs.java b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/ProtoTcs.java index dfed3a95078..92b529dbc34 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/ProtoTcs.java +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/java/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/ProtoTcs.java @@ -59,6 +59,16 @@ public final class ProtoTcs { static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryCapabilityProto_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_AttributesEntry_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_AttributesEntry_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinSourceCoordinatesProto_descriptor; static final @@ -133,23 +143,32 @@ public final class ProtoTcs { "tlinProjectCoordinatesProto\022\025\n\010build_id\030" + "\001 \001(\tH\000\210\001\001\022\031\n\014project_path\030\002 \001(\tH\001\210\001\001\022\031\n" + "\014project_name\030\003 \001(\tH\002\210\001\001B\013\n\t_build_idB\017\n" + - "\r_project_pathB\017\n\r_project_name\"\241\002\n Idea" + + "\r_project_pathB\017\n\r_project_name\"\240\003\n Idea" + "KotlinBinaryCoordinatesProto\022\022\n\005group\030\001 " + "\001(\tH\000\210\001\001\022\023\n\006module\030\002 \001(\tH\001\210\001\001\022\024\n\007version" + "\030\003 \001(\tH\002\210\001\001\022\034\n\017source_set_name\030\004 \001(\tH\003\210\001" + "\001\022k\n\014capabilities\030\005 \003(\0132U.org.jetbrains." + "kotlin.gradle.idea.proto.generated.tcs.I" + - "deaKotlinBinaryCapabilityProtoB\010\n\006_group" + - "B\t\n\007_moduleB\n\n\010_versionB\022\n\020_source_set_n" + - "ame\"}\n\037IdeaKotlinBinaryCapabilityProto\022\022" + - "\n\005group\030\001 \001(\tH\000\210\001\001\022\021\n\004name\030\002 \001(\tH\001\210\001\001\022\024\n" + - "\007version\030\003 \001(\tH\002\210\001\001B\010\n\006_groupB\007\n\005_nameB\n" + - "\n\010_version\"\317\001\n IdeaKotlinSourceCoordinat" + - "esProto\022m\n\007project\030\001 \001(\0132W.org.jetbrains" + - ".kotlin.gradle.idea.proto.generated.tcs." + - "IdeaKotlinProjectCoordinatesProtoH\000\210\001\001\022\034" + - "\n\017source_set_name\030\002 \001(\tH\001\210\001\001B\n\n\010_project" + - "B\022\n\020_source_set_nameB\002P\001b\006proto3" + "deaKotlinBinaryCapabilityProto\022n\n\nattrib" + + "utes\030\006 \001(\0132U.org.jetbrains.kotlin.gradle" + + ".idea.proto.generated.tcs.IdeaKotlinBina" + + "ryAttributesProtoH\004\210\001\001B\010\n\006_groupB\t\n\007_mod" + + "uleB\n\n\010_versionB\022\n\020_source_set_nameB\r\n\013_" + + "attributes\"}\n\037IdeaKotlinBinaryCapability" + + "Proto\022\022\n\005group\030\001 \001(\tH\000\210\001\001\022\021\n\004name\030\002 \001(\tH" + + "\001\210\001\001\022\024\n\007version\030\003 \001(\tH\002\210\001\001B\010\n\006_groupB\007\n\005" + + "_nameB\n\n\010_version\"\317\001\n\037IdeaKotlinBinaryAt" + + "tributesProto\022y\n\nattributes\030\001 \003(\0132e.org." + + "jetbrains.kotlin.gradle.idea.proto.gener" + + "ated.tcs.IdeaKotlinBinaryAttributesProto" + + ".AttributesEntry\0321\n\017AttributesEntry\022\013\n\003k" + + "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\317\001\n IdeaKotl" + + "inSourceCoordinatesProto\022m\n\007project\030\001 \001(" + + "\0132W.org.jetbrains.kotlin.gradle.idea.pro" + + "to.generated.tcs.IdeaKotlinProjectCoordi" + + "natesProtoH\000\210\001\001\022\034\n\017source_set_name\030\002 \001(\t" + + "H\001\210\001\001B\n\n\010_projectB\022\n\020_source_set_nameB\002P" + + "\001b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -203,15 +222,27 @@ public final class ProtoTcs { internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryCoordinatesProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryCoordinatesProto_descriptor, - new java.lang.String[] { "Group", "Module", "Version", "SourceSetName", "Capabilities", "Group", "Module", "Version", "SourceSetName", }); + new java.lang.String[] { "Group", "Module", "Version", "SourceSetName", "Capabilities", "Attributes", "Group", "Module", "Version", "SourceSetName", "Attributes", }); internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryCapabilityProto_descriptor = getDescriptor().getMessageTypes().get(8); internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryCapabilityProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryCapabilityProto_descriptor, new java.lang.String[] { "Group", "Name", "Version", "Group", "Name", "Version", }); - internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinSourceCoordinatesProto_descriptor = + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_descriptor = getDescriptor().getMessageTypes().get(9); + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_descriptor, + new java.lang.String[] { "Attributes", }); + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_AttributesEntry_descriptor = + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_descriptor.getNestedTypes().get(0); + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_AttributesEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinBinaryAttributesProto_AttributesEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinSourceCoordinatesProto_descriptor = + getDescriptor().getMessageTypes().get(10); internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinSourceCoordinatesProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_org_jetbrains_kotlin_gradle_idea_proto_generated_tcs_IdeaKotlinSourceCoordinatesProto_descriptor, diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/kotlin/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryAttributesProtoKt.kt b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/kotlin/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryAttributesProtoKt.kt new file mode 100644 index 00000000000..ee0d80e19e0 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/kotlin/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryAttributesProtoKt.kt @@ -0,0 +1,90 @@ +//Generated by the protocol buffer compiler. DO NOT EDIT! +// source: proto_tcs.proto + +package org.jetbrains.kotlin.gradle.idea.proto.generated.tcs; + +@kotlin.jvm.JvmName("-initializeideaKotlinBinaryAttributesProto") +inline fun ideaKotlinBinaryAttributesProto(block: org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoKt.Dsl.() -> kotlin.Unit): org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto = + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoKt.Dsl._create(org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.newBuilder()).apply { block() }._build() +object IdeaKotlinBinaryAttributesProtoKt { + @kotlin.OptIn(com.google.protobuf.kotlin.OnlyForUseByGeneratedProtoCode::class) + @com.google.protobuf.kotlin.ProtoDslMarker + class Dsl private constructor( + private val _builder: org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.Builder + ) { + companion object { + @kotlin.jvm.JvmSynthetic + @kotlin.PublishedApi + internal fun _create(builder: org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.Builder): Dsl = Dsl(builder) + } + + @kotlin.jvm.JvmSynthetic + @kotlin.PublishedApi + internal fun _build(): org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto = _builder.build() + + /** + * An uninstantiable, behaviorless type to represent the field in + * generics. + */ + @kotlin.OptIn(com.google.protobuf.kotlin.OnlyForUseByGeneratedProtoCode::class) + class AttributesProxy private constructor() : com.google.protobuf.kotlin.DslProxy() + /** + * map<string, string> attributes = 1; + */ + val attributes: com.google.protobuf.kotlin.DslMap + @kotlin.jvm.JvmSynthetic + @JvmName("getAttributesMap") + get() = com.google.protobuf.kotlin.DslMap( + _builder.getAttributesMap() + ) + /** + * map<string, string> attributes = 1; + */ + @JvmName("putAttributes") + fun com.google.protobuf.kotlin.DslMap + .put(key: kotlin.String, value: kotlin.String) { + _builder.putAttributes(key, value) + } + /** + * map<string, string> attributes = 1; + */ + @kotlin.jvm.JvmSynthetic + @JvmName("setAttributes") + @Suppress("NOTHING_TO_INLINE") + inline operator fun com.google.protobuf.kotlin.DslMap + .set(key: kotlin.String, value: kotlin.String) { + put(key, value) + } + /** + * map<string, string> attributes = 1; + */ + @kotlin.jvm.JvmSynthetic + @JvmName("removeAttributes") + fun com.google.protobuf.kotlin.DslMap + .remove(key: kotlin.String) { + _builder.removeAttributes(key) + } + /** + * map<string, string> attributes = 1; + */ + @kotlin.jvm.JvmSynthetic + @JvmName("putAllAttributes") + fun com.google.protobuf.kotlin.DslMap + .putAll(map: kotlin.collections.Map) { + _builder.putAllAttributes(map) + } + /** + * map<string, string> attributes = 1; + */ + @kotlin.jvm.JvmSynthetic + @JvmName("clearAttributes") + fun com.google.protobuf.kotlin.DslMap + .clear() { + _builder.clearAttributes() + } + } +} +@kotlin.jvm.JvmSynthetic +inline fun org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto.copy(block: org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoKt.Dsl.() -> kotlin.Unit): org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto = + org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProtoKt.Dsl._create(this.toBuilder()).apply { block() }._build() + diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/kotlin/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProtoKt.kt b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/kotlin/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProtoKt.kt index ca586b55f31..bb481084c48 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/kotlin/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProtoKt.kt +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/generated/kotlin/org/jetbrains/kotlin/gradle/idea/proto/generated/tcs/IdeaKotlinBinaryCoordinatesProtoKt.kt @@ -189,9 +189,38 @@ object IdeaKotlinBinaryCoordinatesProtoKt { _builder.clearCapabilities() } + + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + var attributes: org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto + @JvmName("getAttributes") + get() = _builder.getAttributes() + @JvmName("setAttributes") + set(value) { + _builder.setAttributes(value) + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + */ + fun clearAttributes() { + _builder.clearAttributes() + } + /** + * optional .org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto attributes = 6; + * @return Whether the attributes field is set. + */ + fun hasAttributes(): kotlin.Boolean { + return _builder.hasAttributes() + } + val IdeaKotlinBinaryCoordinatesProtoKt.Dsl.attributesOrNull: org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto? + get() = _builder.attributesOrNull } } @kotlin.jvm.JvmSynthetic inline fun org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryCoordinatesProto.copy(block: org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryCoordinatesProtoKt.Dsl.() -> kotlin.Unit): org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryCoordinatesProto = org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryCoordinatesProtoKt.Dsl._create(this.toBuilder()).apply { block() }._build() +val org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryCoordinatesProtoOrBuilder.attributesOrNull: org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto? + get() = if (hasAttributes()) getAttributes() else null + diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryAttributes.kt b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryAttributes.kt new file mode 100644 index 00000000000..61bd0595ca4 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryAttributes.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.idea.proto.tcs + +import org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto +import org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.ideaKotlinBinaryAttributesProto +import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryAttributes + +internal fun IdeaKotlinBinaryAttributesProto( + attributes: IdeaKotlinBinaryAttributes, +): IdeaKotlinBinaryAttributesProto { + return ideaKotlinBinaryAttributesProto { + this.attributes.putAll(attributes) + } +} + +internal fun IdeaKotlinBinaryAttributes(proto: IdeaKotlinBinaryAttributesProto): IdeaKotlinBinaryAttributes { + return IdeaKotlinBinaryAttributes(proto.attributesMap) +} diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryCoordinates.kt b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryCoordinates.kt index fff3515233c..9c6e8a877f2 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryCoordinates.kt +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryCoordinates.kt @@ -20,6 +20,7 @@ internal fun IdeaKotlinBinaryCoordinatesProto( coordinates.capabilities.forEach { capability -> this.capabilities.add(IdeaKotlinBinaryCapabilityProto(capability)) } + this.attributes = IdeaKotlinBinaryAttributesProto(coordinates.attributes) } } @@ -29,6 +30,7 @@ internal fun IdeaKotlinBinaryCoordinates(proto: IdeaKotlinBinaryCoordinatesProto module = proto.module, version = if (proto.hasVersion()) proto.version else null, sourceSetName = if (proto.hasSourceSetName()) proto.sourceSetName else null, - capabilities = proto.capabilitiesList.map(::IdeaKotlinBinaryCapability).toSet() + capabilities = proto.capabilitiesList.map(::IdeaKotlinBinaryCapability).toSet(), + attributes = IdeaKotlinBinaryAttributes(proto.attributes) ) } diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_tcs.proto b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_tcs.proto index cb411e3bb3b..ae5e3c3dbfe 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_tcs.proto +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/main/proto/proto_tcs.proto @@ -60,6 +60,7 @@ message IdeaKotlinBinaryCoordinatesProto { optional string version = 3; optional string source_set_name = 4; repeated IdeaKotlinBinaryCapabilityProto capabilities = 5; + optional IdeaKotlinBinaryAttributesProto attributes = 6; } message IdeaKotlinBinaryCapabilityProto { @@ -68,6 +69,10 @@ message IdeaKotlinBinaryCapabilityProto { optional string version = 3; } +message IdeaKotlinBinaryAttributesProto { + map attributes = 1; +} + message IdeaKotlinSourceCoordinatesProto { optional IdeaKotlinProjectCoordinatesProto project = 1; optional string source_set_name = 2; diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryAttributesSerializationTest.kt b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryAttributesSerializationTest.kt new file mode 100644 index 00000000000..a7511aa11e0 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryAttributesSerializationTest.kt @@ -0,0 +1,28 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.idea.proto.tcs + +import org.jetbrains.kotlin.gradle.idea.proto.AbstractSerializationTest +import org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryAttributesProto +import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryAttributes +import org.junit.Test + +class IdeaKotlinBinaryAttributesSerializationTest : AbstractSerializationTest() { + override fun serialize(value: IdeaKotlinBinaryAttributes): ByteArray = IdeaKotlinBinaryAttributesProto(value).toByteArray() + + override fun deserialize(data: ByteArray): IdeaKotlinBinaryAttributes = + IdeaKotlinBinaryAttributes(IdeaKotlinBinaryAttributesProto.parseFrom(data)) + + @Test + fun `sample 0`() = testSerialization( + IdeaKotlinBinaryAttributes(emptyMap()) + ) + + @Test + fun `sample 1`() = testSerialization( + IdeaKotlinBinaryAttributes(mapOf("a" to "valueA", "b" to "valueB")) + ) +} diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryCoordinatesSerializationTest.kt b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryCoordinatesSerializationTest.kt index dc6981a0b4c..30bc8a4700c 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea-proto/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryCoordinatesSerializationTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/proto/tcs/IdeaKotlinBinaryCoordinatesSerializationTest.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.idea.proto.tcs import org.jetbrains.kotlin.gradle.idea.proto.AbstractSerializationTest import org.jetbrains.kotlin.gradle.idea.proto.generated.tcs.IdeaKotlinBinaryCoordinatesProto +import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryAttributes import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryCapability import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryCoordinates import org.junit.Test @@ -60,4 +61,21 @@ class IdeaKotlinBinaryCoordinatesSerializationTest : AbstractSerializationTest (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability; +public abstract interface class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes : java/io/Serializable, java/util/Map, kotlin/jvm/internal/markers/KMappedMarker { +} + +public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributesKt { + public static final fun IdeaKotlinBinaryAttributes ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes; + public static final fun IdeaKotlinBinaryAttributes (Ljava/util/Map;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes; +} + +public abstract interface class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability : java/io/Serializable { + public abstract fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability; + public abstract fun getGroup ()Ljava/lang/String; + public abstract fun getName ()Ljava/lang/String; + public abstract fun getVersion ()Ljava/lang/String; +} + +public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability$DefaultImpls { public static synthetic fun copy$default (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability; - public fun equals (Ljava/lang/Object;)Z - public final fun getGroup ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; - public final fun getVersion ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; +} + +public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapabilityKt { + public static final fun IdeaKotlinBinaryCapability (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability; } public final class org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates : org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates { public static final field serialVersionUID J public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates; public static synthetic fun copy$default (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates; - public static synthetic fun copy$default (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILjava/lang/Object;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates; + public static synthetic fun copy$default (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes;ILjava/lang/Object;)Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCoordinates; public fun equals (Ljava/lang/Object;)Z + public final fun getAttributes ()Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes; public final fun getCapabilities ()Ljava/util/Set; public final fun getDisplayString ()Ljava/lang/String; public final fun getGroup ()Ljava/lang/String; diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes.kt new file mode 100644 index 00000000000..cb321c8db75 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryAttributes.kt @@ -0,0 +1,55 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.idea.tcs + +import org.jetbrains.kotlin.gradle.idea.utils.stringInterner +import org.jetbrains.kotlin.tooling.core.WeakInterner +import java.io.Serializable + +fun IdeaKotlinBinaryAttributes(attributes: Map): IdeaKotlinBinaryAttributes { + return IdeaKotlinBinaryAttributesImpl.createAndIntern(attributes) +} + +fun IdeaKotlinBinaryAttributes(): IdeaKotlinBinaryAttributes { + return IdeaKotlinBinaryAttributesImpl.createAndIntern(emptyMap()) +} + +/** + * Representing the 'Gradle attributes' associated with a given binary. + * This can be used to identify binaries further than just their maven coordinates. + */ +@IdeaKotlinModel +sealed interface IdeaKotlinBinaryAttributes : Map, Serializable + +private class IdeaKotlinBinaryAttributesImpl private constructor( + private val attributes: Map, +) : IdeaKotlinBinaryAttributes, Map by attributes { + + override fun equals(other: Any?): Boolean { + if (other === this) return true + if (other !is IdeaKotlinBinaryAttributesImpl) return false + return this.attributes == other.attributes + } + + override fun hashCode(): Int { + return attributes.hashCode() + } + + override fun toString(): String { + return attributes.toString() + } + + companion object { + const val serialVersionUID = 0L + + private val interner = WeakInterner() + + internal fun createAndIntern(attributes: Map): IdeaKotlinBinaryAttributes { + val internedMap = attributes.map { (key, value) -> stringInterner.getOrPut(key) to stringInterner.getOrPut(value) }.toMap() + return interner.getOrPut(IdeaKotlinBinaryAttributesImpl(internedMap)) + } + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability.kt index 2fb78a2742d..8d09c370750 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability.kt +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinBinaryCapability.kt @@ -5,8 +5,17 @@ package org.jetbrains.kotlin.gradle.idea.tcs +import org.jetbrains.kotlin.gradle.idea.utils.stringInterner import java.io.Serializable +fun IdeaKotlinBinaryCapability(group: String, name: String, version: String?): IdeaKotlinBinaryCapability { + return IdeaKotlinBinaryCapabilityImpl( + group = stringInterner.getOrPut(group), + name = stringInterner.getOrPut(name), + version = if (version != null) stringInterner.getOrPut(version) else null + ) +} + /** * Several variants can be published under a given set of maven coordinates (group, module, version), * Capabilities can classify those variants in a way that e.g. two variants with the same maven coordinates @@ -21,12 +30,24 @@ import java.io.Serializable * @since 1.9.20 */ @IdeaKotlinModel -class IdeaKotlinBinaryCapability( - val group: String, - val name: String, - val version: String?, -) : Serializable { - internal companion object { +sealed interface IdeaKotlinBinaryCapability : Serializable { + val group: String + val name: String + val version: String? + + fun copy( + group: String = this.group, + name: String = this.name, + version: String? = this.version, + ): IdeaKotlinBinaryCapability +} + +private class IdeaKotlinBinaryCapabilityImpl( + override val group: String, + override val name: String, + override val version: String?, +) : IdeaKotlinBinaryCapability { + companion object { const val serialVersionUID = 0L } @@ -37,10 +58,10 @@ class IdeaKotlinBinaryCapability( } } - fun copy( - group: String = this.group, - name: String = this.name, - version: String? = this.version, + override fun copy( + group: String, + name: String, + version: String?, ): IdeaKotlinBinaryCapability { return IdeaKotlinBinaryCapability(group = group, name = name, version = version) } diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates.kt index 9ba14b6a5eb..e52c758768f 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates.kt +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependencyCoordinates.kt @@ -23,6 +23,12 @@ class IdeaKotlinBinaryCoordinates( * @since 1.9.20 */ val capabilities: Set = emptySet(), + + /** + * @see IdeaKotlinBinaryAttributes + * @since 1.9.20 + */ + val attributes: IdeaKotlinBinaryAttributes = IdeaKotlinBinaryAttributes(), ) : IdeaKotlinDependencyCoordinates { constructor( @@ -55,6 +61,9 @@ class IdeaKotlinBinaryCoordinates( if (capabilities.isNotEmpty()) { append(capabilities.joinToString(", ", "(", ")")) } + if (attributes.isNotEmpty()) { + append("+attributes(${attributes.hashCode()})") + } } /** @@ -119,7 +128,7 @@ class IdeaKotlinBinaryCoordinates( if (version != other.version) return false if (sourceSetName != other.sourceSetName) return false if (capabilities != other.capabilities) return false - + if (attributes != other.attributes) return false return true } @@ -129,6 +138,7 @@ class IdeaKotlinBinaryCoordinates( result = 31 * result + (version?.hashCode() ?: 0) result = 31 * result + (sourceSetName?.hashCode() ?: 0) result = 31 * result + capabilities.hashCode() + result = 31 * result + attributes.hashCode() return result } @@ -146,7 +156,8 @@ class IdeaKotlinBinaryCoordinates( module = module, version = version, sourceSetName = sourceSetName, - capabilities = capabilities + capabilities = capabilities, + attributes = attributes, ) } @@ -156,13 +167,15 @@ class IdeaKotlinBinaryCoordinates( version: String? = this.version, sourceSetName: String? = this.sourceSetName, capabilities: Set = this.capabilities, + attributes: IdeaKotlinBinaryAttributes = this.attributes, ): IdeaKotlinBinaryCoordinates { return IdeaKotlinBinaryCoordinates( group = group, module = module, version = version, sourceSetName = sourceSetName, - capabilities = capabilities + capabilities = capabilities, + attributes = attributes ) } @@ -184,10 +197,14 @@ class IdeaKotlinBinaryCoordinates( * will be 'null'. In this case we use the 'copy' function to provide an instance that will have an emptySet instead. */ private fun readResolve(): Any { - @Suppress("SENSELESS_COMPARISON") - if (capabilities == null) { - return copy(capabilities = emptySet()) + @Suppress("SENSELESS_COMPARISON", "USELESS_ELVIS") + if (capabilities == null || attributes == null) { + return copy( + capabilities = capabilities ?: emptySet(), + attributes = attributes ?: IdeaKotlinBinaryAttributes() + ) } + return this } diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/utils/stringInterner.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/utils/stringInterner.kt new file mode 100644 index 00000000000..0ea45fa5be5 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/main/kotlin/org/jetbrains/kotlin/gradle/idea/utils/stringInterner.kt @@ -0,0 +1,13 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.idea.utils + +import org.jetbrains.kotlin.tooling.core.WeakInterner + +/** + * Can be used for all entities in this module to intern strings + */ +internal val stringInterner = WeakInterner() diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/test/tcs/IdeaKotlinBinaryAttributesTest.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/test/tcs/IdeaKotlinBinaryAttributesTest.kt new file mode 100644 index 00000000000..316be9e4f4e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/test/tcs/IdeaKotlinBinaryAttributesTest.kt @@ -0,0 +1,56 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.idea.test.tcs + +import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryAttributes +import kotlin.test.* + +class IdeaKotlinBinaryAttributesTest { + @Test + fun `test - empty instance is same`() { + val instance1 = IdeaKotlinBinaryAttributes() + val instance2 = IdeaKotlinBinaryAttributes() + assertSame(instance1, instance2) + } + + @Test + fun `test - equal instances are same`() { + val instance1 = IdeaKotlinBinaryAttributes( + mapOf("a" to "valueA", "b" to "valueB") + ) + + val instance2 = IdeaKotlinBinaryAttributes( + mapOf("a" to "valueA", "b" to "valueB") + ) + + assertSame(instance1, instance2) + } + + @Test + fun `test - instances string values are same`() { + val instance1 = IdeaKotlinBinaryAttributes( + mapOf("a" to "valueA", "b" to "valueB", "c" to "xxx") + ) + + val instance2 = IdeaKotlinBinaryAttributes( + mapOf("a" to "valueA", "b" to "valueB", "c" to "yyy") + ) + + assertNotSame(instance1, instance2) + assertNotEquals(instance1, instance2) + + instance1.keys.toList().forEachIndexed { index, key -> + assertSame(key, instance2.keys.toList()[index]) + } + + assertSame(instance1["a"], instance2["a"]) + assertSame(instance1["b"], instance2["b"]) + assertEquals("valueA", instance1["a"]) + assertEquals("valueB", instance1["b"]) + assertEquals("xxx", instance1["c"]) + assertEquals("yyy", instance2["c"]) + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/test/tcs/IdeaKotlinBinaryCoordinatesTest.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/test/tcs/IdeaKotlinBinaryCoordinatesTest.kt index 25e4345db63..d4f78008ba7 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/test/tcs/IdeaKotlinBinaryCoordinatesTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/idea/test/tcs/IdeaKotlinBinaryCoordinatesTest.kt @@ -5,10 +5,13 @@ package org.jetbrains.kotlin.gradle.idea.test.tcs +import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryAttributes import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryCapability import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryCoordinates import kotlin.test.Test import kotlin.test.assertEquals +import kotlin.test.assertNotEquals +import kotlin.test.assertNotSame class IdeaKotlinBinaryCoordinatesTest { @@ -108,7 +111,7 @@ class IdeaKotlinBinaryCoordinatesTest { assertEquals("myGroup:myModule-foo:1.0.0:commonMain", coordinates.displayString) assertEquals( - "myGroup:myModule:1.0.0:commonMain(myGroup:myModule-foo:1.0.0, notMyGroup:myModule-foo:1.0.0, notMyGroupEither:myModule-foo)", + "myGroup:myModule:commonMain:1.0.0(myGroup:myModule-foo:1.0.0, notMyGroup:myModule-foo:1.0.0, notMyGroupEither:myModule-foo)", coordinates.identityString ) } @@ -123,11 +126,48 @@ class IdeaKotlinBinaryCoordinatesTest { IdeaKotlinBinaryCapability("notMyGroup", "myModule-foo", null), ) ) - assertEquals("myGroup:myModule-(foo, bar):1.0.0:commonMain", coordinates.displayString) + assertEquals("myGroup:myModule-(foo, bar):commonMain:1.0.0", coordinates.displayString) assertEquals( - "myGroup:myModule:1.0.0:commonMain(myGroup:myModule-foo:1.0.0, myGroup:myModule-bar:1.0.0, notMyGroup:myModule-foo)", + "myGroup:myModule:commonMain:1.0.0(myGroup:myModule-foo:1.0.0, myGroup:myModule-bar:1.0.0, notMyGroup:myModule-foo)", coordinates.identityString ) } + + @Test + fun `test - displayString & identityString - sample 9`() { + val coordinates = IdeaKotlinBinaryCoordinates( + "myGroup", "myModule", "1.0.0", "commonMain", + capabilities = setOf( + IdeaKotlinBinaryCapability("myGroup", "myModule-foo", "1.0.0"), + IdeaKotlinBinaryCapability("myGroup", "myModule-bar", "1.0.0"), + IdeaKotlinBinaryCapability("notMyGroup", "myModule-foo", null), + ), + attributes = IdeaKotlinBinaryAttributes( + mapOf("a" to "valueA") + ) + ) + assertEquals("myGroup:myModule-(foo, bar):commonMain:1.0.0", coordinates.displayString) + + assertEquals( + "myGroup:myModule:commonMain:1.0.0(myGroup:myModule-foo:1.0.0, myGroup:myModule-bar:1.0.0, notMyGroup:myModule-foo)+attributes(-823812975)", + coordinates.identityString + ) + } + + @Test + fun `test - equals`() { + val baseline = IdeaKotlinBinaryCoordinates( + "a", "b", "c", "d", + capabilities = setOf(IdeaKotlinBinaryCapability("x", "y", "z")), + attributes = IdeaKotlinBinaryAttributes(mapOf("a" to "valueA")) + ) + assertNotSame(baseline, baseline.copy()) + assertEquals(baseline, baseline.copy()) + assertEquals(baseline.hashCode(), baseline.copy().hashCode()) + assertEquals(baseline.identityString, baseline.copy().identityString) + assertNotEquals(baseline, baseline.copy(sourceSetName = null)) + assertNotEquals(baseline, baseline.copy(capabilities = emptySet())) + assertNotEquals(baseline, baseline.copy(attributes = IdeaKotlinBinaryAttributes())) + } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeBinaryDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeBinaryDependencyResolver.kt index 5ef765b26fe..aa3a6ded0e6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeBinaryDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeBinaryDependencyResolver.kt @@ -19,11 +19,8 @@ import org.jetbrains.kotlin.gradle.idea.tcs.extras.isIdeaProjectLevel import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet -import org.jetbrains.kotlin.gradle.plugin.ide.IdeDependencyResolver +import org.jetbrains.kotlin.gradle.plugin.ide.* import org.jetbrains.kotlin.gradle.plugin.ide.IdeDependencyResolver.Companion.gradleArtifact -import org.jetbrains.kotlin.gradle.plugin.ide.IdeaKotlinBinaryCapability -import org.jetbrains.kotlin.gradle.plugin.ide.IdeaKotlinBinaryCoordinates -import org.jetbrains.kotlin.gradle.plugin.ide.IdeaKotlinProjectCoordinates import org.jetbrains.kotlin.gradle.plugin.ide.dependencyResolvers.IdeBinaryDependencyResolver.ArtifactResolutionStrategy import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationConfigurationsContainer @@ -153,7 +150,7 @@ class IdeBinaryDependencyResolver @JvmOverloads constructor( is ModuleComponentIdentifier -> { IdeaKotlinResolvedBinaryDependency( - coordinates = IdeaKotlinBinaryCoordinates(componentId, artifact.variant.capabilities), + coordinates = IdeaKotlinBinaryCoordinates(componentId, artifact.variant.capabilities, artifact.variant.attributes), binaryType = binaryType, classpath = IdeaKotlinClasspath(artifact.file), ) @@ -166,7 +163,8 @@ class IdeBinaryDependencyResolver @JvmOverloads constructor( module = componentId.libraryName, version = null, sourceSetName = null, - capabilities = artifact.variant.capabilities.map(::IdeaKotlinBinaryCapability).toSet() + capabilities = artifact.variant.capabilities.map(::IdeaKotlinBinaryCapability).toSet(), + attributes = IdeaKotlinBinaryAttributes(artifact.variant.attributes) ), classpath = IdeaKotlinClasspath(artifact.file) ) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeOriginalMetadataDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeOriginalMetadataDependencyResolver.kt index f1eb0533c89..c0fbca01f86 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeOriginalMetadataDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/IdeOriginalMetadataDependencyResolver.kt @@ -34,8 +34,8 @@ internal object IdeOriginalMetadataDependencyResolver : IdeDependencyResolver { IdeaKotlinResolvedBinaryDependency( binaryType = IdeaKotlinBinaryDependency.KOTLIN_COMPILE_BINARY_TYPE, classpath = IdeaKotlinClasspath(artifact.file), - coordinates = IdeaKotlinBinaryCoordinates(moduleId) + coordinates = IdeaKotlinBinaryCoordinates(moduleId, artifact.variant.capabilities, artifact.variant.attributes) ) }.toSet() } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/factories.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/factories.kt index 0cf79001117..7c13b581edf 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/factories.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/factories.kt @@ -8,11 +8,9 @@ package org.jetbrains.kotlin.gradle.plugin.ide import org.gradle.api.Project import org.gradle.api.artifacts.component.ModuleComponentIdentifier import org.gradle.api.artifacts.component.ProjectComponentIdentifier +import org.gradle.api.attributes.AttributeContainer import org.gradle.api.capabilities.Capability -import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryCapability -import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinBinaryCoordinates -import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinProjectCoordinates -import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceCoordinates +import org.jetbrains.kotlin.gradle.idea.tcs.* import org.jetbrains.kotlin.gradle.idea.tcs.extras.KlibExtra import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.currentBuildId @@ -45,12 +43,14 @@ internal fun IdeaKotlinSourceCoordinates(sourceSet: KotlinSourceSet): IdeaKotlin internal fun IdeaKotlinBinaryCoordinates( identifier: ModuleComponentIdentifier, capabilities: List = emptyList(), + attributes: AttributeContainer, ): IdeaKotlinBinaryCoordinates { return IdeaKotlinBinaryCoordinates( group = identifier.group, module = identifier.module, version = identifier.version, - capabilities = capabilities.map(::IdeaKotlinBinaryCapability).toSet() + capabilities = capabilities.map(::IdeaKotlinBinaryCapability).toSet(), + attributes = IdeaKotlinBinaryAttributes(attributes) ) } @@ -62,6 +62,12 @@ internal fun IdeaKotlinBinaryCapability(capability: Capability): IdeaKotlinBinar ) } +internal fun IdeaKotlinBinaryAttributes(attributes: AttributeContainer): IdeaKotlinBinaryAttributes { + return IdeaKotlinBinaryAttributes( + attributes.keySet().associate { key -> key.name to attributes.getAttribute(key).toString() } + ) +} + internal fun KlibExtra(library: KotlinLibrary): KlibExtra { return KlibExtra( builtInsPlatform = library.builtInsPlatform, diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/IdeaKotlinBinaryAttributesFactoryTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/IdeaKotlinBinaryAttributesFactoryTest.kt new file mode 100644 index 00000000000..0e4e00051ad --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/IdeaKotlinBinaryAttributesFactoryTest.kt @@ -0,0 +1,36 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +@file:Suppress("FunctionName") + +package org.jetbrains.kotlin.gradle.unitTests + +import org.gradle.api.attributes.Category +import org.gradle.api.attributes.Usage +import org.jetbrains.kotlin.gradle.plugin.ide.IdeaKotlinBinaryAttributes +import org.jetbrains.kotlin.gradle.util.buildProject +import org.jetbrains.kotlin.gradle.utils.named +import kotlin.test.Test +import kotlin.test.assertEquals + +class IdeaKotlinBinaryAttributesFactoryTest { + + @Test + fun `test - sample 0`() { + val project = buildProject() + + val dummyConfiguration = project.configurations.create("dummy") + val container = dummyConfiguration.attributes + container.attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_API)) + container.attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.DOCUMENTATION)) + + assertEquals( + mapOf( + "org.gradle.usage" to "java-api", + "org.gradle.category" to "documentation" + ), IdeaKotlinBinaryAttributes(container) + ) + } +}