This class defines a data structure for storing and interacting with an objectclass, which contains a collection of attributes that must and/or may be present in an entry with that objectclass.
Any methods which accesses the set of names associated with this object class, will retrieve the primary name as the first name, regardless of whether or not it was contained in the original set of names
passed to the constructor.
Where ordered sets of names, attribute types, or extra properties are provided, the ordering will be preserved when the associated fields are accessed via their getters or via the {@link #toString()} methods.