001
014
015 package com.liferay.portlet.exportimport.lar;
016
017 import aQute.bnd.annotation.ProviderType;
018
019 import com.liferay.portal.kernel.util.HashCode;
020 import com.liferay.portal.kernel.util.HashCodeFactoryUtil;
021 import com.liferay.portal.kernel.util.StringPool;
022 import com.liferay.portal.kernel.util.Validator;
023 import com.liferay.portal.util.PortalUtil;
024
025
028 @ProviderType
029 public class StagedModelType {
030
031 public static final String REFERRER_CLASS_NAME_ALL =
032 "referrer-class-name-all";
033
034 public static final String REFERRER_CLASS_NAME_ANY =
035 "referrer-class-name-any";
036
037 public static final int REFERRER_CLASS_NAME_ID_ALL = -1;
038
039 public static final int REFERRER_CLASS_NAME_ID_ANY = -2;
040
041 public StagedModelType(Class<?> clazz) {
042 setClassName(clazz.getName());
043 }
044
045 public StagedModelType(Class<?> clazz, Class<?> referrerClass) {
046 setClassName(clazz.getName());
047 setReferrerClassName(referrerClass.getName());
048 }
049
050 public StagedModelType(long classNameId) {
051 setClassNameId(classNameId);
052 }
053
054 public StagedModelType(long classNameId, long referrerClassNameId) {
055 setClassNameId(classNameId);
056 setReferrerClassNameId(referrerClassNameId);
057 }
058
059 public StagedModelType(String className) {
060 setClassName(className);
061 }
062
063 public StagedModelType(String className, String referrerClassName) {
064 setClassName(className);
065 setReferrerClassName(referrerClassName);
066 }
067
068 @Override
069 public boolean equals(Object obj) {
070 if (this == obj) {
071 return true;
072 }
073
074 if ((obj == null) || !(obj instanceof StagedModelType)) {
075 return false;
076 }
077
078 StagedModelType stagedModelType = (StagedModelType)obj;
079
080 if ((stagedModelType._classNameId != _classNameId) ||
081 (stagedModelType._referrerClassNameId != _referrerClassNameId)) {
082
083 return false;
084 }
085
086 return true;
087 }
088
089 public String getClassName() {
090 return _className;
091 }
092
093 public long getClassNameId() {
094 return _classNameId;
095 }
096
097 public String getClassSimpleName() {
098 return _classSimpleName;
099 }
100
101 public String getReferrerClassName() {
102 return _referrerClassName;
103 }
104
105 public long getReferrerClassNameId() {
106 return _referrerClassNameId;
107 }
108
109 @Override
110 public int hashCode() {
111 HashCode hashCode = HashCodeFactoryUtil.getHashCode();
112
113 hashCode.append(_classNameId);
114 hashCode.append(_referrerClassNameId);
115
116 return hashCode.toHashCode();
117 }
118
119 @Override
120 public String toString() {
121 if (_referrerClassNameId <= 0) {
122 return _className;
123 }
124
125 return _className.concat(StringPool.POUND).concat(_referrerClassName);
126 }
127
128 protected String getSimpleName(String className) {
129 if (Validator.isNull(className)) {
130 return StringPool.BLANK;
131 }
132
133 int pos = className.lastIndexOf(StringPool.PERIOD) + 1;
134
135 if (pos <= 0) {
136 return className;
137 }
138
139 return className.substring(pos);
140 }
141
142 protected void setClassName(String className) {
143 _className = className;
144 _classSimpleName = getSimpleName(_className);
145
146 if (Validator.isNotNull(className)) {
147 _classNameId = PortalUtil.getClassNameId(className);
148 }
149 else {
150 _classNameId = 0;
151 }
152 }
153
154 protected void setClassNameId(long classNameId) {
155 if (classNameId > 0) {
156 _className = PortalUtil.getClassName(classNameId);
157 _classSimpleName = getSimpleName(_className);
158 }
159 else {
160 _className = null;
161 _classSimpleName = null;
162 }
163
164 _classNameId = classNameId;
165 }
166
167 protected void setClassSimpleName(String classSimpleName) {
168 _classSimpleName = classSimpleName;
169 }
170
171 protected void setReferrerClassName(String referrerClassName) {
172 _referrerClassName = referrerClassName;
173
174 if (Validator.isNull(referrerClassName)) {
175 _referrerClassNameId = 0;
176 }
177 else if (referrerClassName.equals(REFERRER_CLASS_NAME_ALL)) {
178 _referrerClassNameId = REFERRER_CLASS_NAME_ID_ALL;
179 }
180 else if (referrerClassName.equals(REFERRER_CLASS_NAME_ANY)) {
181 _referrerClassNameId = REFERRER_CLASS_NAME_ID_ANY;
182 }
183 else {
184 _referrerClassNameId = PortalUtil.getClassNameId(referrerClassName);
185 }
186 }
187
188 protected void setReferrerClassNameId(long referrerClassNameId) {
189 _referrerClassNameId = referrerClassNameId;
190
191 if (referrerClassNameId == 0) {
192 _referrerClassName = null;
193 }
194 else if (referrerClassNameId == REFERRER_CLASS_NAME_ID_ALL) {
195 _referrerClassName = REFERRER_CLASS_NAME_ALL;
196 }
197 else if (referrerClassNameId == REFERRER_CLASS_NAME_ID_ANY) {
198 _referrerClassName = REFERRER_CLASS_NAME_ANY;
199 }
200 else if (referrerClassNameId > 0) {
201 _referrerClassName = PortalUtil.getClassName(referrerClassNameId);
202 }
203 }
204
205 private String _className;
206 private long _classNameId;
207 private String _classSimpleName;
208 private String _referrerClassName;
209 private long _referrerClassNameId;
210
211 }