Changes in JSDAI version 3.6.0 since JSDAI v3.5.4.
JSDAI Runtime
- Faster SDAI file operations
- Move mapping support and database access out of the standard JSDAI into separte extensions
- Mapping operation extensions and fixes; new algorithm for batch AIM to ARM conversion
- Added simple export to P28ed2 XML files
- Added automatic detection of STEP library jar files
- Enhancements EXPRESS expressions evaluation for derived attributes, functions and procedures
- class Value for any datatype value
- New methods:
- Implemented validation methods
- EEntity: validateWhereRule()
- SchemaInstance: validateUniquenessRule() and validateSchemaInstance()
- EEntity: moveUsersFrom(), copyValuesFrom(), isValid()
- SdaiContext: new constructor SdaiContext(SdaiModel)
- SdaiRepository
- copyFrom(ASchemaInstance)
- copyFrom(SchemaInstance)
- copyFrom(SdaiRepository)
- getRealName() for SDAI Files
- New query related methods:
- QueryResultSet.getItemStruct(int, ItemStruct) with inner class ItemStruct
- QuerySource and implementing classes CAggregate, SchemaInstance, SdaiModel, SdaiRepository, SdaiSession: getQuerySourceDomainRef() and getQuerySourceInstanceRef()
- Implemented validation methods
- Speed optimizations for:
- EEntity: get_inverse, findEntityInstanceUsedin, early binding usedinXxx methods, findInstanceRoles
- SdaiModel: substituteInstance
- SdaiDictionary, see also Changes in SDAI_dictionary_schema for v3.6
- Remove of redunandent attributes for entity_definition and attribute
- Introducing specific aggregates for inverse attributes. Correcting methods (early and late binding) for getting values of such attributes.
- Appearance of two or more data types having the same name was eliminated. This is important because of public method SdaiSession.findDataType() which for a given name returns the corresponding instance of EData_type. From the current version of JSDAI this correspondence is unique.
- Other enhancements
- ExportClearTextEncoding: references to instances in outside repositories are shown in the file as unset values (dollar sign).
- testByIndex: extended for non-persistent lists
- substituteInstance: Retaining the same java Object for entity instance in the case when entity type definition of the existing instance coincides with that of its substitute.
- Fixed bugs
- Change behavior of substituteInstance() when type of instance does not change (816)
- SdaiModel.getInstances(Class type) does not work under certain cases (839)
- EEntity.copyApplicationInstance() (877)
- get_inverse() (881)
- SdaiModel.substituteInstance do not preserve common attributes (884)
- exportClearTextEncoding causes java exception (891, 990)
- incorrect working of SdaiRepository.findSchemaInstance() (896)
- Incorrect resolving of virtual models (1002)
- inverse_attribute type - incorrect return type of get methods (1004)
- Removal of references to temporary repositories (the bug was that they survived in some cases after ceasing the existence of such repositories).
- ASchemaInstance.getAssociatedModels() was rewritten. Its behaviour was correct locally but was wrong in the case of the remote connection.
- SessionAggregate.attachIterator() was adapted for remote connection.
- SdaiTransaction.abort() method was updated to restore the repository contents correctly. Wrong results appeared in some special cases for the combined situation of the remote connection and multiple sessions.
JSDAI Express Compiler
- Support for RENAMED redeclared attributes for chained redeclarations of explicit attributes
- Warnings about nested functions no longer generated if expressions are not enabled
- New switch added: -enable_expressions (-ee)
- Support for incremental compilation extended in the complex generator
- Improved error reporting and recovery
- Implemented interval expression support in expressions
- Derived attributes of enumeration type supported in expressions.
- Data types of inverse attributes changed to correspond to the ones declared in express (set/bag), also necessary changes in generated java classes.
- Improvements in expressions, more precise types for aggregate local variables
- Various bug fixes
JSDAI DB (Database)
This got an independent extension of the core JSDAI functionality on the client side, working together with the JSDAI SQL Bridge on relational databases.
- Full support of MySQL v.4.1 and Oracle 9i
- Changed SDAI transaction on DB to non locking commits; added a special exception type to track collision situations
- Complete implementation of remote queries including query source handling
- Added 3 levels of access to query results: using JSDAI objects for backward compatibility; using high level references; and using low level interface
- Extended filtering on database and storing of STEP data in a way suitable for querying
- Enhanced concurrent use stability
- Fixed possible memory leaks
- Enhanced Web Administration for workspace support
- Updated webadmin tool to controll access rights
- Move of access control from SdaiModel to SchemaInstance (= Workspace concept)
- Enhanced installer tool
- New backup tool
- Optimized Bridge-Client communication
- Added checking of EXPRESS schema versions to match version on the client.
JSDAI Mapping
JSDAI Mapping got an independent extension of the core JSDAI functionality.
- Introducing of extended ARM schemas for AP214/212 (IDA-STEP) and AP210, linking directly to some parts of the integrated resources (ARM-X)
- Major speed improvement for AIM to ARM-X Analysis
- Mapping operation related additions
- Class SdaiSession
- convertMapping(MappingContext)
- Interface EMappedARMEntity
- assignMappedValue(SdaiContext, EExplicit_attribute, Object, ANamed_type)
- assignMappedValue(SdaiContext, EExplicit_attribute, Object, Generic_attribute_mapping)
- getNextArmInstance()
- setAttributeState(int)
- New class MappingContext
- New interface MappingPopulationCreator
- Class SdaiSession