Ticket #472 (closed Enhancement: fixed)

Opened 8 years ago

Last modified 7 years ago

Core Service: generic property handling methods

Reported by: jri Owned by: jri
Priority: Major Milestone: Release 4.2
Component: DeepaMehta Standard Distribution Version: 4.1
Keywords: Cc: dgf, Malte
Complexity: 3 Area: Application Framework / API
Module: deepamehta-core

Description

Currently the Core Service's property handling methods are aimed at Access Control information.
Other plugins want store properties too, e.g. a Time plugin want store/fetch time stamps.

Change History

comment:1 Changed 8 years ago by jri

  • Status changed from new to accepted

comment:2 Changed 7 years ago by jri

  • Status changed from accepted to closed
  • Resolution set to fixed

The DeepaMehta Core service provides 3 new methods for handling generic properties:

  • getProperty()
  • setProperty()
  • hasProperty()

AccessControl? service:

  • getACL() is new method

BREAKING CHANGES

DeepaMehta Core service:

  • 6 methods are dropped:
    • getACL()
    • setACL()
    • getCreator()
    • setCreator()
    • getOwner()
    • setOwner()
    Use the AccessControl? service instead

AccessControl?:

  • 4 classes have moved from package de.deepamehta.core.service.accesscontrol to

de.deepamehta.plugins.accesscontrol.model:

You must adapt your imports.

Changeset: ec7088ff232e37551956dbd15d6cb01b90d885bf

comment:3 Changed 7 years ago by jri

  • Status changed from closed to reopened
  • Resolution fixed deleted

We also need removeProperty() methods.
These would be required when a migration want to rename a property.

comment:4 Changed 7 years ago by jri

Core API: add removeProperty() methods (#472).

The Core service has 2 new methods:

  • void removeTopicProperty(long topicId, String propUri)
  • void removeAssociationProperty(long assocId, String propUri)

See #472.

Changeset: 96542e4f6aedb3119cec8b9e941def2b6572813e

comment:5 Changed 7 years ago by jri

The property API should be polished. The topic/association related property methods (get, set, has, remove) should be polymorph and move to the DeepaMehtaObject? base class.

comment:6 Changed 7 years ago by jri

Core: property API is polymorph (#472).

BREAKING CHANGE

The topic/association related property methods (get, set, has, remove) are polymorph. They are removed from the Core Service API and located now in the DeepaMehtaObject? base class.

DeepaMehtaObject?:

  • Object getProperty(String propUri);
  • void setProperty(String propUri, Object propValue, boolean addToIndex);
  • boolean hasProperty(String propUri);
  • void removeProperty(String propUri);

See #472.

Changeset: 8d246efbccf5874fb9673409df1674d697d70851

comment:7 Changed 7 years ago by jri

Access Control: API is polymorph (#472).

BREAKING CHANGE

The getters and setters for creator/owner/acl do not distinguih between topics and associations but take a generic DeepaMehtaObject?.

String getCreator(DeepaMehtaObject? object);
void setCreator(DeepaMehtaObject? object, String username);

String getOwner(DeepaMehtaObject? object);
void setOwner(DeepaMehtaObject? object, String username);

AccessControlList? getACL(DeepaMehtaObject? object);
void setACL(DeepaMehtaObject? object, AccessControlList? acl);

See #472.

Changeset: 2c94772e4864dd9a6a1fde87c62346408b33dffe

comment:8 Changed 7 years ago by jri

Time API is polymorph (#472, #386).

BREAKING CHANGE

The timestamp getters and setters do not distinguih between topics and associations but take a generic DeepaMehtaObject?.

long getCreationTime(DeepaMehtaObject? object)
long getModificationTime(DeepaMehtaObject? object)

See #472.
See #386.

Changeset: 854a83b2a42941d0b0befeab3655d479358be922

comment:9 Changed 7 years ago by jri

  • Status changed from reopened to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.