PropertyGroup samples
Basics
From the older OpenKM version we named "Metadata Groups" as "Property Groups".
Although we understand this name does not help a lot to identify these methods with metadata ones, for historical reason, we continue maintaining the nomenclature.
For more information about Metadata.
The class com.openkm.sdk4j.util.ISO8601 should be used to set and parse metadata date fields. The metadata field of type date values is stored in the application in ISO-8601 basic format.
To convert the retrieved metadata field of type date to a valid date use:
Calendar cal = ISO8601.parseBasic(metadataFieldValue);
To save the date value in the metadata field of type date use:
Calendar cal = Calendar.getInstance(); // Present date
String metadataFieldValue = ISO8601.formatBasic(cal);
// metadataFieldValue can be saved into repository metadata field of type date
Suggested code sample
First, you must create the webservice object:
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
Then should login using the method "login". You can access the "login" method from webservice object "ws" as is shown below:
ws.login(user, password);
Once you are logged with the webservices the session is keep in the webservice Object. Then you can use the other API methods.
At this point you can use all the Property Group methods from "propertyGroup" class as is shown below:
ws.propertyGroup.addPropertyGroup("8cd1e072-8595-4dd3-b121-41d622c43f08", "okg:consulting", propertiesMap);
Methods
addPropertyGroup
Description:
Method | Return values | Description |
---|---|---|
addPropertyGroup(String uuid, String grpName, Map<String, String> propertiesMap) |
void |
Adds an empty metadata group to a node. |
The grpName should be a valid Metadata group name. It is not mandatory to set in the propertiesMap parameter all fields values, is enough with the fields you wish to change its values. The sample below is based on this Metadata group definition:
To add several values on a metadata field of type multiple like this:
You should do:
|
Example:
package com.openkm;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
import com.openkm.sdk4j.util.ISO8601;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Map<String, String> propertiesMap = new HashMap<>();
propertiesMap.put("okp:consulting.name", "new name");
// Date fields must be saved with basic ISO 8601 format
propertiesMap.put("okp:consulting.date", ISO8601.formatBasic(Calendar.getInstance()));
propertiesMap.put("okp:consulting.comment", "new comment");
ws.propertyGroup.addPropertyGroup("8cd1e072-8595-4dd3-b121-41d622c43f08", "okg:consulting", propertiesMap);
} catch (Exception e) {
e.printStackTrace();
}
}
}
removePropertyGroup
Description:
Method | Return values | Description |
---|---|---|
removePropertyGroup(String uuid, String grpName) |
void |
Removes a metadata group of a node. |
The grpName should be a valid Metadata group name. |
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
ws.propertyGroup.removePropertyGroup("8cd1e072-8595-4dd3-b121-41d622c43f08", "okg:consulting");
} catch (Exception e) {
e.printStackTrace();
}
}
}
getPropertyGroups
Description:
Method | Return values | Description |
---|---|---|
getPropertyGroups(String uuid) |
List<PropertyGroup> |
Retrieves a list of metadata groups assigned to a node. |
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.PropertyGroup;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (PropertyGroup pGroup : ws.propertyGroup.getPropertyGroups("8cd1e072-8595-4dd3-b121-41d622c43f08")) {
System.out.println(pGroup);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
getAllPropertyGroups
Description:
Method | Return values | Description |
---|---|---|
getAllPropertyGroups() |
List<PropertyGroup> |
Retrieves a list of all metadata groups set into the application. |
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.PropertyGroup;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (PropertyGroup pGroup : ws.propertyGroup.getAllPropertyGroups()) {
System.out.println(pGroup);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
getPropertyGroupForm
Description:
Method | Return values | Description |
---|---|---|
getPropertyGroupForm(String grpName) |
List<FormElement> |
Retrieves a list of all metadata group elements definition. |
The grpName should be a valid Metadata group name. The method is usually used to display empty form elements for creating new metadata values. |
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.form.FormElement;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (FormElement fElement : ws.propertyGroup.getPropertyGroupForm("okg:consulting")) {
System.out.println(fElement);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
getPropertyGroupForm
Description:
Method | Return values | Description |
---|---|---|
getPropertyGroupForm(String uuid, String grpName) |
List<FormElement> |
Retrieves a list of all metadata group elements definition by uuid. |
The grpName should be a valid Metadata group name. The method is usually used to display empty form elements for creating new metadata values. |
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.form.FormElement;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (FormElement fElement : ws.propertyGroup.getPropertyGroupForm("8cd1e072-8595-4dd3-b121-41d622c43f08","okg:consulting")) {
System.out.println(fElement);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
setPropertyGroupProperties
Description:
Method | Return values | Description |
---|---|---|
setPropertyGroupProperties(String uuid, String grpName, Map<String, String> properties) |
void |
Changes the metadata group values of a node. |
The grpName should be a valid Metadata group name. Before changing metadata, you should have the group added in the node ( see addGroup method ) otherwise will be raised and error. It is not mandatory to set in the properties parameterMap all fields values, is enough with the fields you wish to change its values. The sample below is based on this Metadata group definition:
To add several values on a metadata field of type multiple like this:
You should do:
Where \"one\" and \"two\" are valid values and character "," is used as separator. Another option:
|
Example:
package com.openkm;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
import com.openkm.sdk4j.util.ISO8601;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Map<String, String> properties = new HashMap<>();
properties.put("okp:consulting.name", "set name");
// Date fields must be saved with basic ISO 8601 format
properties.put("okp:consulting.date", ISO8601.formatBasic(Calendar.getInstance()));
properties.put("okp:consulting.comment", "set comment");
ws.propertyGroup.setPropertyGroupProperties("8cd1e072-8595-4dd3-b121-41d622c43f08", "okg:consulting", properties);
} catch (Exception e) {
e.printStackTrace();
}
}
}
hasPropertyGroup
Description:
Method | Return values | Description |
---|---|---|
hasPropertyGroup(String uuid, String grpName) |
Boolean |
Returns a boolean that indicate if the node has or not a metadata group. |
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println("Have metadata group:" + ws.propertyGroup.hasPropertyGroup("8cd1e072-8595-4dd3-b121-41d622c43f08", "okg:consulting"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
getRegisteredPropertyGroupDefinition
Description:
Method | Return values | Description |
---|---|---|
getRegisteredPropertyGroupDefinition() |
String |
Returns the XML Metada groups definition. |
The method only can be executed by super user granted ( ROLE_ADMIN member user). |
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.propertyGroup.getRegisteredPropertyGroupDefinition());
} catch (Exception e) {
e.printStackTrace();
}
}
}
registerPropertyGroupDefinition
Description:
Method | Return values | Description |
---|---|---|
registerPropertyGroupDefinition(InputStream is, String name) |
void |
Set the XML Metada groups definition into the repository. |
The method only can be executed by super user granted ( ROLE_ADMIN member user). |
Example:
package com.openkm;
import java.io.FileInputStream;
import java.io.InputStream;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
InputStream is = new FileInputStream("/home/openkm/PropertyGroups.xml");
ws.propertyGroup.registerPropertyGroupDefinition(is, "test");
} catch (Exception e) {
e.printStackTrace();
}
}
}
getPropertyGroupSuggestions
Description:
Method | Return values | Description |
---|---|---|
getPropertyGroupSuggestions(String uuid, String grpName, String propName) |
List<String> |
Retrieves a list of a suggested metadata field values. |
The propName parameter should be a Metadata Select field type. More information at Creating your own Suggestion Analyzer and Metadata Select field.
The sample below is based on this Metadata group definition:
|
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (String value : ws.propertyGroup.getPropertyGroupSuggestions("8cd1e072-8595-4dd3-b121-41d622c43f08", "okg:technology", "okp:technology.language")) {
System.out.println(value);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
getPropertyGroupProperties
Description:
Method | Return values | Description |
---|---|---|
getPropertyGroupProperties(String uuid, String grpName) |
Map<String, String> |
Retrieves a map - (key,value) pairs - with Metada group values of a node. |
Example:
package com.openkm;
import java.util.HashMap;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Map<String, String> properties = new HashMap<>();
properties = ws.propertyGroup.getPropertyGroupProperties("8cd1e072-8595-4dd3-b121-41d622c43f08", "okg:technology");
for (String key : properties.keySet()) {
System.out.println(key + " > " + properties.get(key));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
getPropertyGroupsByVersion
Description:
Method | Return values | Description |
---|---|---|
getPropertyGroupsByVersion(String uuid, String versionName) |
List<PropertyGroup> |
Retrieves a list of metadata groups assigned to a specific version of a node. |
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.PropertyGroup;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (PropertyGroup pGroup : ws.propertyGroup.getPropertyGroupsByVersion("118cb06b-9df7-4d59-bed9-ba986a4f8e0b", "1.3")) {
System.out.println(pGroup);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
getPropertyGroupPropertiesByVersion
Description:
Method | Return values | Description |
---|---|---|
getPropertyGroupPropertiesByVersion(String uuid, String grpName, String versionName) |
Map<String, String> |
Retrieves a map - (key,value) pairs - with Metadata group values assigned to a specific version of a node. |
Example:
package com.openkm;
import java.util.HashMap;
import java.util.Map;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
Map<String, String> properties = new HashMap<>();
properties = ws.propertyGroup.getPropertyGroupPropertiesByVersion("118cb06b-9df7-4d59-bed9-ba986a4f8e0b", "okg:technology", "1.3");
for (String key : properties.keySet()) {
System.out.println(key + " > " + properties.get(key));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
getPropertyGroupByVersionForm
Description:
Method | Return values | Description |
---|---|---|
getPropertyGroupByVersionForm(String uuid, String grpName, String versionName) |
List<FormElement> |
Retrieves a list of all metadata group elements definition for a specific version of a node. |
The grpName should be a valid Metadata group name. The method is usually used to display empty form elements for updating new metadata values. |
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.bean.form.FormElement;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
for (FormElement fElement : ws.propertyGroup.getPropertyGroupByVersionForm("118cb06b-9df7-4d59-bed9-ba986a4f8e0b", "okg:consulting", "1.3")) {
System.out.println(fElement);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
getPropertyGroup
Description:
Method | Return values | Description |
---|---|---|
getPropertyGroup(String grpName) |
PropertyGroup |
Retrieve the metadata group |
Example:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;
import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) {
String host = "http://localhost:8080/openkm";
String user = "okmAdmin";
String password = "admin";
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try {
ws.login(user, password);
System.out.println(ws.propertyGroup.getPropertyGroup("okg:consulting"));
} catch (Exception e) {
e.printStackTrace();
}
}
}