This project is alpha quality
This project provides a set of plugins for Eclipse to help write domain-driven applications using Apache Isis.
There are three main components:
- enhanced rename refactoring
- views
- code folding
The plugin archive site can be downloaded here.
The Isis programming model (see cheat sheet) defines a number of supporting methods for each class member. For example, for a property lastName defined by getLastName() and setLastName(String), this proposed value can be validated using the supporting validateLastName(String) method.
The Apache Isis IDE plugins hook into the refactoring, so that any supporting methods are automatically renamed if the property (or collection, or action) is also renamed. For example, changing lastName to familyName would result in the validate method being renamed to validateFamilyName(String).
The views show summary information about the class members of the domain object opened in the current editor. Double clicking on any row moves the cursor to that member in the editor.
The views are dynamically updated as you edit the class members; or (with the exception of the outline view) you can use view to edit the class member annotations.
The outline is a read-only view of all of the class members of the current domain object, indicating whether each member has supporting methods or not. Double clicking on any row moves the cursor to that member in the editor.
where:
- Hi
- hideXxx() method is present
- Di
- disableXxx() method is present
- Mo
- modifyXxx() method is present
- Cl
- clearXxx() method is present
- Va
- validateXxx() method is present
- AT
- addToXxx() method is present
- VAT
- validateAddToXxx() method is present
- RF
- removeFromXxx() method is present
- VRF
- validateRemoveFromXxx() method is present
- De
- defaultXxx() method is present
- Ch
- choicesXxx() method is present
The properties view is a read/write view on the annotations relevant to properties of any type. Double clicking on any row moves the cursor to that member in the editor.
where:
- MO#sequence
- @MemberOrder sequence() attribute
- MO#name
- @MemberOrder name() attribute
- Title#sequence
- @Title sequence() attribute
- Title#preprend
- @Title prepend() attribute
- Title#append
- @Title append() attribute
- Title#abbreviatedTo
- @Title abbreviatedTo() attribute
- TypicalLength
- @TypicalLength value() attribute
- Disabled
- @Disabled value() attribute
- Optional
- @Optional value() attribute
- NotPersisted
- @NotPersisted value() attribute
- Hidden
- @Hidden value() attribute
- Named
- @Named value() attribute
- DescribedAs
- @DescribedAs value() attribute
The string properties view is a read/write view on the annotations relevant to only properties of type java.lang.String. Double clicking on any row moves the cursor to that member in the editor.
where:
- Type
- Indicates the property's type
- MaxLength @MaxLength value() attribute
- ML#numberOfLines
- @MultiLine numberOfLines() attribute
- ML#preventWrapping
- @MultiLine preventWrapping() attribute
- Mask
- @Mask value() attribute
- RE#validation
- @RegEx validation() attribute
- RE#format
- @RegEx format() attribute
- RE#caseSensitive
- @RegEx caseSensitive() attribute
The collections view is a read/write view on the annotations relevant to collections. Double clicking on any row moves the cursor to that collection in the editor.
where:
- Type
- Indicates the collection's type
- MO#sequence
- @MemberOrder sequence() attribute
- MO#name
- @MemberOrder name() attribute
- TypeOf
- @TypeOf value() attribute
- Disabled
- @Disabled value() attribute
- NotPersisted
- @NotPersisted value() attribute
- Hidden
- @Hidden value() attribute
- Named
- @Named value() attribute
- DescribedAs
- @DescribedAs value() attribute
The actions view is a read/write view on the annotations relevant to actions, also showing annotations for the actions' parameters (if any). Double clicking on any row moves the cursor to that action in the editor.
where, for the action:
- Type
- Indicates the action's return type
- MO#sequence
- @MemberOrder sequence() attribute
- MO#name
- @MemberOrder name() attribute
- QueryOnly
- @QueryOnly value() attribute
- Idempotent
- @Idempotent value() attribute
- Disabled
- @Disabled value() attribute
- Hidden
- @Hidden value() attribute
- NotContributed
- @NotContributed value() attribute
- NotInServiceMenu
- @NotInServiceMenu value() attribute
- Debug
- @Debug value() attribute
- Exploration
- @Exploration value() attribute
- Named
- @Named value() attribute
- DescribedAs
- @DescribedAs value() attribute
and where, for each action paramter:
- Type
- Indicates the parameter's type
- Named
- @Named value() attribute
- Optional
- @Optional value() attribute
- TypicalLength
- @TypicalLength value() attribute
- MaxLength @MaxLength value() attribute (string parameters only)
- ML#numberOfLines
- @MultiLine numberOfLines() attribute (string parameters only)
- ML#preventWrapping
- @MultiLine preventWrapping() attribute (string parameters only)
- Mask
- @Mask value() attribute (string parameters only)
- RE#validation
- @RegEx validation() attribute (string parameters only)
- RE#format
- @RegEx format() attribute (string parameters only)
- RE#caseSensitive
- @RegEx caseSensitive() attribute (string parameters only)
The code folding is derived from the Coffee Bytes folding plugin, fixed to run with the latest Eclipse.
Configure using the Preferences menu.