1717import java .util .Map ;
1818
1919public enum RpmTag implements RpmBaseTag {
20- NAME (1000 ),
21- VERSION (1001 ),
22- RELEASE (1002 ),
23- EPOCH (1003 ),
24- SUMMARY (1004 ),
25- DESCRIPTION (1005 ),
26- BUILDTIME (1006 ),
27- BUILDHOST (1007 ),
28- SIZE (1009 ),
29- DISTRIBUTION (1010 ),
30- VENDOR (1011 ),
31- LICENSE (1014 ),
32- PACKAGER (1015 ),
33- GROUP (1016 ),
34- URL (1020 ),
35- OS (1021 ),
36- ARCH (1022 ),
37- PREINSTALL_SCRIPT (1023 ),
38- POSTINSTALL_SCRIPT (1024 ),
39- PREREMOVE_SCRIPT (1025 ),
40- POSTREMOVE_SCRIPT (1026 ),
41- FILE_SIZES (1028 ),
42- FILE_MODES (1030 ),
43- FILE_RDEVS (1033 ),
44- FILE_MTIMES (1034 ),
45- FILE_DIGESTS (1035 ),
46- FILE_LINKTO (1036 ),
47- FILE_FLAGS (1037 ),
48- FILE_USERNAME (1039 ),
49- FILE_GROUPNAME (1040 ),
50- SOURCE_PACKAGE (1044 ),
51- FILE_VERIFYFLAGS (1045 ),
52- ARCHIVE_SIZE (1046 ),
53- PROVIDE_NAME (1047 ),
54- REQUIRE_FLAGS (1048 ),
55- REQUIRE_NAME (1049 ),
56- REQUIRE_VERSION (1050 ),
57- CONFLICT_FLAGS (1053 ),
58- CONFLICT_NAME (1054 ),
59- CONFLICT_VERSION (1055 ),
60- RPMVERSION (1064 ),
61- TRIGGER_SCRIPTS (1065 ),
62- TRIGGER_NAME (1066 ),
63- TRIGGER_VERSION (1067 ),
64- TRIGGER_FLAGS (1068 ),
65- TRIGGER_INDEX (1069 ),
66- VERIFY_SCRIPT (1079 ),
67- CHANGELOG_TIMESTAMP (1080 ),
68- CHANGELOG_AUTHOR (1081 ),
69- CHANGELOG_TEXT (1082 ),
70- PREINSTALL_SCRIPT_PROG (1085 ),
71- POSTINSTALL_SCRIPT_PROG (1086 ),
72- PREREMOVE_SCRIPT_PROG (1087 ),
73- POSTREMOVE_SCRIPT_PROG (1088 ),
74- VERIFY_SCRIPT_PROG ( 1091 ),
75- TRIGGERSCRIPT_PROG ( 1092 ),
76- OBSOLETE_NAME ( 1090 ),
77- FILE_DEVICES (1095 ),
78- FILE_INODES (1096 ),
79- FILE_LANGS (1097 ),
80- PREFIXES (1098 ),
81- PROVIDE_FLAGS (1112 ),
82- PROVIDE_VERSION (1113 ),
83- OBSOLETE_FLAGS (1114 ),
84- OBSOLETE_VERSION (1115 ),
85- DIR_INDEXES (1116 ),
86- BASENAMES (1117 ),
87- DIRNAMES (1118 ),
88- OPTFLAGS (1122 ),
89- PAYLOAD_FORMAT (1124 ),
90- PAYLOAD_CODING (1125 ),
91- PAYLOAD_FLAGS (1126 ),
92- PLATFORM (1132 ),
93- PRETRANSACTION_SCRIPT (1151 ),
94- POSTTRANSACTION_SCRIPT (1152 ),
95- PRETRANSACTION_SCRIPT_PROG (1153 ),
96- POSTTRANSACTION_SCRIPT_PROG (1154 ),
97- LONGSIZE (5009 ),
98- FILE_DIGESTALGO (5011 ),
99- RECOMMEND_NAME (5046 ),
100- RECOMMEND_VERSION (5047 ),
101- RECOMMEND_FLAGS (5048 ),
102- SUGGEST_NAME (5049 ),
103- SUGGEST_VERSION (5050 ),
104- SUGGEST_FLAGS (5051 ),
105- SUPPLEMENT_NAME (5052 ),
106- SUPPLEMENT_VERSION (5053 ),
107- SUPPLEMENT_FLAGS (5054 ),
108- ENHANCE_NAME (5055 ),
109- ENHANCE_VERSION (5056 ),
110- ENHANCE_FLAGS (5057 ),
20+ NAME (1000 , String . class ),
21+ VERSION (1001 , String . class ),
22+ RELEASE (1002 , String . class ),
23+ EPOCH (1003 , Integer . class ),
24+ SUMMARY (1004 , String []. class ),
25+ DESCRIPTION (1005 , String []. class ),
26+ BUILDTIME (1006 , Integer . class ),
27+ BUILDHOST (1007 , String . class ),
28+ SIZE (1009 , Integer . class ),
29+ DISTRIBUTION (1010 , String . class ),
30+ VENDOR (1011 , String . class ),
31+ LICENSE (1014 , String . class ),
32+ PACKAGER (1015 , String . class ),
33+ GROUP (1016 , String []. class ),
34+ URL (1020 , String . class ),
35+ OS (1021 , String . class ),
36+ ARCH (1022 , String . class ),
37+ PREINSTALL_SCRIPT (1023 , String . class ),
38+ POSTINSTALL_SCRIPT (1024 , String . class ),
39+ PREREMOVE_SCRIPT (1025 , String . class ),
40+ POSTREMOVE_SCRIPT (1026 , String . class ),
41+ FILE_SIZES (1028 , Integer []. class ),
42+ FILE_MODES (1030 , Short []. class ),
43+ FILE_RDEVS (1033 , Short []. class ),
44+ FILE_MTIMES (1034 , Integer []. class ),
45+ FILE_DIGESTS (1035 , String []. class ),
46+ FILE_LINKTO (1036 , String []. class ),
47+ FILE_FLAGS (1037 , Integer []. class ),
48+ FILE_USERNAME (1039 , String []. class ),
49+ FILE_GROUPNAME (1040 , String []. class ),
50+ SOURCE_PACKAGE (1044 , String . class ),
51+ FILE_VERIFYFLAGS (1045 , Integer []. class ),
52+ ARCHIVE_SIZE (1046 , Integer . class ),
53+ PROVIDE_NAME (1047 , String []. class ),
54+ REQUIRE_FLAGS (1048 , Integer []. class ),
55+ REQUIRE_NAME (1049 , String []. class ),
56+ REQUIRE_VERSION (1050 , String []. class ),
57+ CONFLICT_FLAGS (1053 , Integer []. class ),
58+ CONFLICT_NAME (1054 , String []. class ),
59+ CONFLICT_VERSION (1055 , String []. class ),
60+ RPMVERSION (1064 , String . class ),
61+ TRIGGER_SCRIPTS (1065 , String []. class ),
62+ TRIGGER_NAME (1066 , String []. class ),
63+ TRIGGER_VERSION (1067 , String []. class ),
64+ TRIGGER_FLAGS (1068 , Integer []. class ),
65+ TRIGGER_INDEX (1069 , Integer []. class ),
66+ VERIFY_SCRIPT (1079 , String . class ),
67+ CHANGELOG_TIMESTAMP (1080 , Integer []. class ),
68+ CHANGELOG_AUTHOR (1081 , String []. class ),
69+ CHANGELOG_TEXT (1082 , String []. class ),
70+ PREINSTALL_SCRIPT_PROG (1085 , String []. class ),
71+ POSTINSTALL_SCRIPT_PROG (1086 , String []. class ),
72+ PREREMOVE_SCRIPT_PROG (1087 , String []. class ),
73+ POSTREMOVE_SCRIPT_PROG (1088 , String []. class ),
74+ OBSOLETE_NAME ( 1090 , String []. class ),
75+ VERIFY_SCRIPT_PROG ( 1091 , String []. class ),
76+ TRIGGERSCRIPT_PROG ( 1092 , String []. class ),
77+ FILE_DEVICES (1095 , Integer []. class ),
78+ FILE_INODES (1096 , Integer []. class ),
79+ FILE_LANGS (1097 , String []. class ),
80+ PREFIXES (1098 , String []. class ),
81+ PROVIDE_FLAGS (1112 , Integer []. class ),
82+ PROVIDE_VERSION (1113 , String []. class ),
83+ OBSOLETE_FLAGS (1114 , Integer []. class ),
84+ OBSOLETE_VERSION (1115 , String []. class ),
85+ DIR_INDEXES (1116 , Integer . class ),
86+ BASENAMES (1117 , String []. class ),
87+ DIRNAMES (1118 , String []. class ),
88+ OPTFLAGS (1122 , String . class ),
89+ PAYLOAD_FORMAT (1124 , String . class ),
90+ PAYLOAD_CODING (1125 , String . class ),
91+ PAYLOAD_FLAGS (1126 , String . class ),
92+ PLATFORM (1132 , String . class ),
93+ PRETRANSACTION_SCRIPT (1151 , String . class ),
94+ POSTTRANSACTION_SCRIPT (1152 , String . class ),
95+ PRETRANSACTION_SCRIPT_PROG (1153 , String []. class ),
96+ POSTTRANSACTION_SCRIPT_PROG (1154 , String []. class ),
97+ LONGSIZE (5009 , Long . class ),
98+ FILE_DIGESTALGO (5011 , Integer . class ),
99+ RECOMMEND_NAME (5046 , String []. class ),
100+ RECOMMEND_VERSION (5047 , String []. class ),
101+ RECOMMEND_FLAGS (5048 , Integer []. class ),
102+ SUGGEST_NAME (5049 , String []. class ),
103+ SUGGEST_VERSION (5050 , String []. class ),
104+ SUGGEST_FLAGS (5051 , Integer []. class ),
105+ SUPPLEMENT_NAME (5052 , String []. class ),
106+ SUPPLEMENT_VERSION (5053 , String []. class ),
107+ SUPPLEMENT_FLAGS (5054 , Integer []. class ),
108+ ENHANCE_NAME (5055 , String []. class ),
109+ ENHANCE_VERSION (5056 , String []. class ),
110+ ENHANCE_FLAGS (5057 , Integer []. class ),
111111
112- PAYLOAD_DIGEST (5092 ),
113- PAYLOAD_DIGEST_ALGO (5093 ),
114- PAYLOAD_DIGEST_ALT (5097 );
112+ PAYLOAD_DIGEST (5092 , String []. class ),
113+ PAYLOAD_DIGEST_ALGO (5093 , Integer . class ),
114+ PAYLOAD_DIGEST_ALT (5097 , String []. class );
115115
116116 private final Integer value ;
117117
118- RpmTag (final Integer value ) {
118+ private final Class <?> dataType ;
119+
120+ <T > RpmTag (final Integer value , Class <T > dataType ) {
119121 this .value = value ;
122+ this .dataType = dataType ;
120123 }
121124
122125 @ Override
123126 public Integer getValue () {
124127 return this .value ;
125128 }
126129
127- private final static Map <Integer , RpmTag > all = new HashMap <>(RpmTag .values ().length );
130+ public Class <?> getDataType () {
131+ return this .dataType ;
132+ }
133+
134+ private static final Map <Integer , RpmTag > all = new HashMap <>(RpmTag .values ().length );
128135
129136 static {
130137 for (final RpmTag tag : values ()) {
@@ -135,4 +142,10 @@ public Integer getValue() {
135142 public static RpmTag find (final Integer value ) {
136143 return all .get (value );
137144 }
145+
146+ @ Override
147+ public String toString () {
148+ RpmTag tag = find (this .value );
149+ return dataType .getSimpleName () + " " + (tag != null ? tag .name () + "(" + this .value + ")" : "UNKNOWN(" + this .value + ")" );
150+ }
138151}
0 commit comments