Javaप्लग इन

सेवा देने वाली कंपनी, जो Java प्लगिन के बारे में जानकारी इकट्ठा करती है.

फ़िलहाल, एनोटेशन प्रोसेसर ही सिर्फ़ प्लगिन के साथ काम करते हैं.

पैसे चुकाकर बने सदस्य

JavaPluginInfo

JavaPluginInfo JavaPluginInfo(runtime_deps, *, processor_class, data=[], generates_api=False)

JavaPluginInfo कंस्ट्रक्टर.

पैरामीटर

पैरामीटर ब्यौरा
runtime_deps sequence of JavaInfos; ज़रूरी है
वह लाइब्रेरी जिसमें एनोटेशन प्रोसेसर होता है.
processor_class string; or None; ज़रूरी है
पूरी तरह क्वालिफ़ाइड क्लास का नाम, जिसे Java कंपाइलर, एनोटेशन प्रोसेसर के लिए एंट्री पॉइंट के तौर पर इस्तेमाल करता है.
data sequence of Files; or depset of Files; डिफ़ॉल्ट = []
वे फ़ाइलें जिन्हें एनोटेशन प्रोसेस करने वाले इस प्रोसेसर को चलाने के दौरान ज़रूरत होती है.
generates_api डिफ़ॉल्ट = False
जब यह एनोटेशन प्रोसेसर, एपीआई कोड जनरेट करता है, तो इसे 'सही' पर सेट करें.

इस तरह के एनोटेशन प्रोसेसर को, अपने हेडर जार (जिसमें मेथड के सिग्नेचर होते हैं) बनाने से पहले, Java टारगेट पर लागू किया जाता है. अगर कोई एपीआई प्लगिन मौजूद नहीं होता है, तो सोर्स से हेडर जार जनरेट होते हैं. इससे अहम पाथ कम हो जाता है.

चेतावनी: यह पैरामीटर, बिल्ड की परफ़ॉर्मेंस पर असर डालता है. ज़रूरत होने पर ही इसका इस्तेमाल करें.

api_generating_plugins

JavaPluginData JavaPluginInfo.api_generating_plugins

इस टारगेट के मुताबिक तय या एक्सपोर्ट किए गए एपीआई जनरेट करने वाले प्लगिन के बारे में डेटा दिखाता है.

ये एनोटेशन प्रोसेसर, अपने हेडर जार (जिसमें मेथड सिग्नेचर होते हैं) बनाने से पहले, Java टारगेट पर लागू किए जाते हैं. अगर कोई एपीआई प्लगिन मौजूद नहीं है, तो सोर्स से हेडर जार जनरेट होते हैं. इससे अहम पाथ कम हो जाता है.

api_generating_plugins, plugins का सबसेट है.

java_outputs

list JavaPluginInfo.java_outputs

इस Java/Java जैसे टारगेट के आउटपुट की जानकारी दिखाता है.

प्लगिन

JavaPluginData JavaPluginInfo.plugins

यह फ़ंक्शन, उन सभी प्लगिन का डेटा दिखाता है जिन्हें इस्तेमाल करने वाले टारगेट को लागू करना चाहिए.

आम तौर पर, यह खुद java_plugin या एक या ज़्यादा प्लग इन एक्सपोर्ट करने वाला java_library होता है.

java_library, इस फ़ील्ड के सभी प्लगिन के साथ एनोटेशन प्रोसेस करता है. यह deps और plugins एट्रिब्यूट में दिखता है.

to_json

string JavaPluginInfo.to_json()

अब काम नहीं करता. इस एपीआई के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह ---incompatible_struct_has_no_methods के साथ बंद है. इस फ़्लैग का इस्तेमाल करके, पुष्टि करें कि आपका कोड जल्द ही हटाए जाने के लिए तैयार है.
स्ट्रक्चर पैरामीटर से JSON स्ट्रिंग बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर्ड एलिमेंट (बार-बार आने वाले) स्ट्रिंग, इंट, बूलियन, अन्य स्ट्रक्ट, इन टाइप की सूची या स्ट्रिंग बटन और इनके टाइप की वैल्यू वाली डिक्शनरी हों. स्ट्रिंग में कोटेशन और नई लाइनें एस्केप कर दी जाती हैं. उदाहरण:
struct(key=123).to_json()
# {"key":123}

struct(key=True).to_json()
# {"key":true}

struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}

struct(key='text').to_json()
# {"key":"text"}

struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}
.

अब सेवा में नहीं है: इसके बजाय, json.encode(x) या json.encode_indent(x) का इस्तेमाल करें. यह स्ट्रक्चर के अलावा, दूसरी वैल्यू के लिए काम करता है और स्ट्रक्चर फ़ील्ड के नेमस्पेस को खराब नहीं करता.

to_proto

string JavaPluginInfo.to_proto()

अब काम नहीं करता. इस एपीआई के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह ---incompatible_struct_has_no_methods के साथ बंद है. इस फ़्लैग का इस्तेमाल करके, पुष्टि करें कि आपका कोड जल्द ही हटाए जाने के लिए तैयार है.
स्ट्रक्चर पैरामीटर से मैसेज बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (बार-बार आने वाले) में स्ट्रिंग, इंट, बूलियन, अन्य स्ट्रक्ट या इन टाइप की सूचियां या सूचियां हों. स्ट्रिंग में कोटेशन और नई लाइनें एस्केप कर दी जाती हैं. स्ट्रक्चर्ड बटन, क्रम से लगाए गए क्रम के हिसाब से दोहराए जाते हैं. उदाहरण:
struct(key=123).to_proto()
# key: 123

struct(key=True).to_proto()
# key: true

struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3

struct(key='text').to_proto()
# key: "text"

struct(key=struct(inner_key='text')).to_proto()
# key {
#   inner_key: "text"
# }

struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
#   inner_key: 1
# }
# key {
#   inner_key: 2
# }

struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
#    inner_key {
#     inner_inner_key: "text"
#   }
# }

struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
#   key: 4
#   value: 3
# }
# foo: {
#   key: 2
#   value: 1
# }

अब काम नहीं करता: इसके बजाय, proto.encode_text(x) का इस्तेमाल करें.