class PojoTypeInfo extends CompositeType<T> {

	@Override
	public boolean equals(Object obj) {
		if (obj instanceof PojoTypeInfo) {
			@SuppressWarnings("unchecked")
			PojoTypeInfo<T> pojoTypeInfo = (PojoTypeInfo<T>)obj;

			return pojoTypeInfo.canEqual(this) &&
				super.equals(pojoTypeInfo) &&
				Arrays.equals(fields, pojoTypeInfo.fields) &&
				totalFields == pojoTypeInfo.totalFields;
		} else {
			return false;
		}
	}

	@PublicEvolving public  PojoTypeInfo(Class<T> typeClass, List<PojoField> fields);

}