如何获取Alfresco自定义内容模型属性信息?

时间:2014-03-11 06:39:10

标签: properties model alfresco

有没有办法以编程方式了解Alfresco中自定义模型的属性?

例如,oracle中的数据字典可帮助您查找由哪些列名和列数据类型定义的表。

我的目标是java中的示例代码,它提取所有自定义内容模型,它们的属性,它们的属性数据类型等。例如,我的示例代码应该返回给我一个自定义内容模型,它具有整数属性名称为“No”,字符串属性名称为“Description”。我知道DictionaryComponent可以实现这一点,但我不知道应该如何使用它。

2 个答案:

答案 0 :(得分:2)

看看org.alfresco.service.cmr.dictionary.DictionaryService

您的Java代码是否会在露天环境中运行(作为/ alfresco webapp的一部分)或在外部运行?

如果您在上下文中运行,那么Alfreso Java Foundation API是您选择DictionaryService所在的选择。只需将bean注入java代码即可。

如果您的代码在露天之外运行,那么您可以选择Alfresco REST API或CMIS。

如果你仍然迷路,那么先训练自己。杰夫写了一些好文章http://ecmarchitect.com/alfresco-developer-series&也是一本书。

也是一个很好的起点 - Alfresco开发人员文档:http://docs.alfresco.com/4.2/topic/com.alfresco.enterprise.doc/concepts/dev-for-developers.html

答案 1 :(得分:0)

感谢很多alfresian回复,我的代码示例如下所示: 我找到了来自this URL

的示例代码
    public void GetAllAvailableDataTypes() throws IOException
{
    Session session = getSession(); 
    boolean includePropertyDefintions = true;
      for (Tree t : session.getTypeDescendants(
            null, // start at the top of the tree
            -1, // infinite depth recursion
            includePropertyDefintions // include prop defs
            )) {
         printTypes(t, "");
      }
}


public void printTypes(Tree tree, String tab) {          
      ObjectType objType = (ObjectType) tree.getItem();
      String type =  objType.getId();
      if(true)//type.endsWith("hstcase"))
      {
          System.out.println(tab + "TYPE:" + objType.getDisplayName() +
            " (" + objType.getDescription() + ")");
          //Print some of the common attributes for this type
          System.out.print(tab + " Id:" + "-----"+ objType.getId() + "-----");                          
          System.out.print(" Fileable:" + objType.isFileable());
          System.out.print(" Queryable:" + objType.isQueryable());

          if (objType instanceof DocumentType) {                        
              System.out.print(" [DOC Attrs->] Versionable:" +
                      ((DocumentType)objType).isVersionable());
              System.out.println(" Content:" +
                      ((DocumentType)objType).getContentStreamAllowed());
        Map<String, org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition<?>> props = objType.getPropertyDefinitions();
        Set<String> keys = props.keySet();
        Collection<org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition<?>> porpsAsCollection = props.values();
        for(org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition<?> p: porpsAsCollection)
        {
            //System.out.println(p.getDescription());
            PropertyType pt = p.getPropertyType();
            System.out.println("Display Name: "+ p.getDisplayName());
            System.out.println("Local Name: "+ p.getLocalName());
            System.out.println("Attribute Type: "+ pt.value());      
        }           
      }
      System.out.println(""); // end the line
      }
      List<Tree> childs = tree.getChildren();
      for (Tree t : childs) {
         // there are more - call self for next level
         printTypes(t, tab + " ");
      }

}