# Package org.appng.api.model

Provides an interface-based view to the domain model of appNG and some very basic interfaces.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Account | Basic account data.
  Application | A `Application` is a component that adds certain functionality to the platform.
  ApplicationSubject | A `ApplicationSubject` is an `Account` which owns several `Role`s.
  Authorizable<T extends Serializable> | If a `Application` want's to authorize a domain object to several `Role`s, the domain-object needs to implement `Authorizable`. The `Role`s provided by the `Application` can be obtained by calling `Application.getRoles()`.
  AuthSubject | An `AuthSubject` provides some user-credentials.
  FeatureProvider | A `Application` can make use of several features provided by appNG.
  Group | A `Group` is a set of `Subject`s which has several `Role`s.
  Identifiable<T extends Serializable> | Interface for something that can be identified.
  Identifier | Provides general information about a `PackageInfo`.
  Nameable | Interface for something that is nameable, also providing a description.
  Named<T extends Serializable> | Something that can be named has an ID, a name and a description
  NameProvider<T> | Provides a way to retrieve a human readable name for a certain type.
  Permission | A `Application` can provide several `Permission`s which are used to restrict the access to certain components.
  Properties | Everywhere in appNG where something needs to be configurable, `Properties` come into operation.
  Property | A `Property` is a single configuration value, used to configure the appNG platform, a `Site` or a `Application`.
  Resource | A `Application` provides several `Resource`s, which are needed to load and execute the `Application`.
  Resources | A container providing easy access to the a `Application`s multiple `Resource`s.
  RevisionAware |
  Role | A `Role` is used for grouping the `Permission`s of a `Application`.
  Site | A `Site` is the highest level entry-point to the platform.
  Subject | A `Subject` is a fully featured user-account managed by appNG.
  Versionable<T extends Serializable> | Interface for something that is versionable.

- Class Summary
  Class | Description
  --- | ---
  ReverseableComparator<T> |
  SimpleProperty | Default `Property`-implementation

- Enum Summary
  Enum | Description
  --- | ---
  AuthSubject.PasswordChangePolicy | The policy for changing the subject's password
  Property.Type | The type of a `Property`
  ResourceType | Defines the different types of a `Resource`.
  Site.SiteState | The different states a site can have
  UserType | Defines the different types a `Subject` can be of.

## Package org.appng.api.model Description

Provides an interface-based view to the domain model of appNG and some very basic interfaces.

Copyright © 2011–2023 aiticon GmbH. All rights reserved.