<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_25) on Thu Jun 20 13:09:09 CEST 2013 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>PolicyTypeDefinition (Apache Chemistry OpenCMIS 0.9.0)</title>
<meta name="date" content="2013-06-20">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="PolicyTypeDefinition (Apache Chemistry OpenCMIS 0.9.0)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PolicyTypeDefinition.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/PermissionDefinition.html" title="interface in org.apache.chemistry.opencmis.commons.definitions"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/PropertyBooleanDefinition.html" title="interface in org.apache.chemistry.opencmis.commons.definitions"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/chemistry/opencmis/commons/definitions/PolicyTypeDefinition.html" target="_top">Frames</a></li>
<li><a href="PolicyTypeDefinition.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.chemistry.opencmis.commons.definitions</div>
<h2 title="Interface PolicyTypeDefinition" class="title">Interface PolicyTypeDefinition</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../../../../org/apache/chemistry/opencmis/commons/data/ExtensionsData.html" title="interface in org.apache.chemistry.opencmis.commons.data">ExtensionsData</a>, <a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html" title="interface in org.apache.chemistry.opencmis.commons.definitions">TypeDefinition</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="strong">PolicyTypeDefinition</span>
extends <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html" title="interface in org.apache.chemistry.opencmis.commons.definitions">TypeDefinition</a></pre>
<div class="block">Policy Type Definition.</div>
<dl><dt><span class="strong">CMIS:</span></dt>
  <dd>1.0</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.chemistry.opencmis.commons.definitions.TypeDefinition">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.chemistry.opencmis.commons.definitions.<a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html" title="interface in org.apache.chemistry.opencmis.commons.definitions">TypeDefinition</a></h3>
<code><a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#getBaseTypeId()">getBaseTypeId</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#getDescription()">getDescription</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#getDisplayName()">getDisplayName</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#getId()">getId</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#getLocalName()">getLocalName</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#getLocalNamespace()">getLocalNamespace</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#getParentTypeId()">getParentTypeId</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#getPropertyDefinitions()">getPropertyDefinitions</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#getQueryName()">getQueryName</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#getTypeMutability()">getTypeMutability</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#isControllableAcl()">isControllableAcl</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#isControllablePolicy()">isControllablePolicy</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#isCreatable()">isCreatable</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#isFileable()">isFileable</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#isFulltextIndexed()">isFulltextIndexed</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#isIncludedInSupertypeQuery()">isIncludedInSupertypeQuery</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.html#isQueryable()">isQueryable</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.chemistry.opencmis.commons.data.ExtensionsData">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.chemistry.opencmis.commons.data.<a href="../../../../../../org/apache/chemistry/opencmis/commons/data/ExtensionsData.html" title="interface in org.apache.chemistry.opencmis.commons.data">ExtensionsData</a></h3>
<code><a href="../../../../../../org/apache/chemistry/opencmis/commons/data/ExtensionsData.html#getExtensions()">getExtensions</a>, <a href="../../../../../../org/apache/chemistry/opencmis/commons/data/ExtensionsData.html#setExtensions(java.util.List)">setExtensions</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PolicyTypeDefinition.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/PermissionDefinition.html" title="interface in org.apache.chemistry.opencmis.commons.definitions"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/chemistry/opencmis/commons/definitions/PropertyBooleanDefinition.html" title="interface in org.apache.chemistry.opencmis.commons.definitions"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/chemistry/opencmis/commons/definitions/PolicyTypeDefinition.html" target="_top">Frames</a></li>
<li><a href="PolicyTypeDefinition.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2009-2013 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
</body>
</html>
