Package nl.pim16aap2.animatedarchitecture.core.extensions


@NonNullByDefault package nl.pim16aap2.animatedarchitecture.core.extensions
Contains classes for loading structure types from external sources. This includes classes for initializing the structure types and their components, as well as classes for managing the classpath and loading classes from external sources.

Each structure is loaded from its own jar file. This jar file is supposed to have a manifest that contains the following items:

  • Attributes.Name.MAIN_CLASS that refers to a subclass of StructureType.

    For example:

     Main-Class: nl.pim16aap2.animatedarchitecture.structures.flag.StructureTypeFlag
  • The "TypeName" parameter that defines the name of the structure type.

    For example:

     Name: TypeName
     TypeName: BigDoor
  • The version of the structure type. This has to be an integer.

    For example:

     Name: Version
     Version: 1
  • Optionally: A list of dependencies on other structure types. This has to be in the format of "<typeName>(minVersion;maxVersion)". Both the minimum and the maximum versions of the dependency are inclusive.

    For example:

     Name: TypeDependencies
     TypeDependencies: portcullis(1;5)
    This would require the "portcullis" type to be installed with 1 <= version >= 5.

    All dependencies of a class will be loaded before the class itself is loaded. Cyclic dependencies are not supported.