blob: 7d0459e6690acafeedfe932ec9a30e92821bbc29 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Object :: Apache Isis</title>
<link rel="canonical" href="https://isis.apache.org/refguide/2.0.0-M3/applib-classes/roles-mixins-contributees/mixins/Object.html">
<meta name="generator" content="Antora 2.2.0">
<link rel="stylesheet" href="../../../../../_/css/site.css">
<link rel="stylesheet" href="../../../../../_/css/site-custom.css">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i|Raleway:300,400,500,700,800|Montserrat:300,400,700" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"/>
<link rel="home" href="https://isis.apache.org" title="Apache Isis">
</head>
<body class="article">
<header class="header">
<nav class="navbar">
<div class="navbar-brand">
<a class="navbar-item" href="https://isis.apache.org">
<span class="icon">
<img src="../../../../../_/img/isis-logo-48x48.png"></img>
</span>
<span>Apache Isis</span>
</a>
<button class="navbar-burger" data-target="topbar-nav">
<span></span>
<span></span>
<span></span>
</button>
</div>
<div id="topbar-nav" class="navbar-menu">
<a class="navbar-end">
<div class="navbar-item hide-for-print">
<span>
<input id="algolia-search-input" placeholder="Search"></span>
</span>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Quick Start</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Starter Apps</span>
<a class="navbar-item" href="../../../../../docs/2.0.0-M3/starters/helloworld.html">Hello World</a>
<a class="navbar-item" href="../../../../../docs/2.0.0-M3/starters/simpleapp.html">Simple App</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Demos &amp; Tutorials</span>
<a class="navbar-item" href="../../../../../docs/2.0.0-M3/demo/about.html">Demo App</a>
<a class="navbar-item" href="https://danhaywood.gitlab.io/isis-petclinic-tutorial-docs/petclinic/1.16.2/intro.html">Petclinic (tutorial)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Resources</span>
<a class="navbar-item" href="../../../../../docs/2.0.0-M3/resources/cheatsheet.html">Cheatsheet</a>
<a class="navbar-item" href="../../../../../docs/2.0.0-M3/resources/icons.html">Icons</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Guides</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Development</span>
<a class="navbar-item" href="../../../../../setupguide/2.0.0-M3/about.html">Setup Guide</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Core</span>
<a class="navbar-item" href="../../../../../userguide/2.0.0-M3/about.html">User Guide</a>
<a class="navbar-item" href="../../../../../refguide/2.0.0-M3/about.html">Reference Guide</a>
<a class="navbar-item" href="../../../../../testing/2.0.0-M3/about.html">Testing Guide</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Libraries</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">For Use in Apps</span>
<a class="navbar-item" href="../../../../../subdomains/2.0.0-M3/about.html">Subdomain Libraries</a>
<a class="navbar-item" href="../../../../../valuetypes/2.0.0-M3/about.html">Value Types</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Integrate between Apps</span>
<a class="navbar-item" href="../../../../../mappings/2.0.0-M3/about.html">Bounded Context Mapping Libraries</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Other</span>
<a class="navbar-item" href="../../../../../incubator/2.0.0-M3/about.html">Incubator</a>
<a class="navbar-item" href="../../../../../legacy/2.0.0-M3/about.html">Legacy</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Components</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Viewers</span>
<a class="navbar-item" href="../../../../../vw/2.0.0-M3/about.html">Wicket UI</a>
<a class="navbar-item" href="../../../../../vro/2.0.0-M3/about.html">Restful Objects (REST)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Security</span>
<a class="navbar-item" href="../../../../../security/2.0.0-M3/about.html">Security Guide</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Persistence</span>
<a class="navbar-item" href="../../../../../pjdo/2.0.0-M3/about.html">DataNucleus (JDO)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Extensions</span>
<a class="navbar-item" href="../../../../../extensions/2.0.0-M3/about.html">Extensions Catalog</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Support</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Contact</span>
<a class="navbar-item" href="../../../../../docs/2.0.0-M3/support/slack-channel.html">Slack</a>
<a class="navbar-item" href="../../../../../docs/2.0.0-M3/support/mailing-list.html">Mailing Lists</a>
<a class="navbar-item" href="https://issues.apache.org/jira/browse/ISIS">JIRA</a>
<a class="navbar-item" href="https://stackoverflow.com/questions/tagged/isis">Stack Overflow</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Releases</span>
<a class="navbar-item" href="../../../../../docs/2.0.0-M3/downloads/how-to.html">Downloads</a>
<a class="navbar-item" href="../../../../../relnotes/2.0.0-M3/about.html">Release Notes</a>
<a class="navbar-item" href="../../../../../docs/2.0.0-M3/archive/1-x.html">Archive (1.x)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Framework</span>
<a class="navbar-item" href="../../../../../conguide/2.0.0-M3/about.html">Contributors' Guide</a>
<a class="navbar-item" href="../../../../../comguide/2.0.0-M3/about.html">Committers' Guide</a>
<a class="navbar-item" href="../../../../../core/2.0.0-M3/about.html">Core Design</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">ASF</a>
<div class="navbar-dropdown">
<a class="navbar-item" href="http://www.apache.org/">Apache Homepage</a>
<a class="navbar-item" href="https://www.apache.org/events/current-event">Events</a>
<a class="navbar-item" href="https://www.apache.org/licenses/">Licenses</a>
<a class="navbar-item" href="https://www.apache.org/security/">Security</a>
<a class="navbar-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
<a class="navbar-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a>
<hr class="navbar-divider"/>
<a class="navbar-item" href="https://whimsy.apache.org/board/minutes/Isis.html">PMC board minutes</a>
</div>
</div>
<a class="navbar-item" href="../../../../../docs/2.0.0-M3/about.html">
<span class="icon">
<img src="../../../../../_/img/home.png"></img>
</span>
</a>
</div>
</div>
</nav>
</header>
<div class="body ">
<div class="nav-container" data-component="refguide" data-version="2.0.0-M3">
<aside class="nav">
<div class="panels">
<div class="nav-panel-pagination">
<a class="page-previous disabled" rel="prev" href="" title=""><span></span></a>
<a class="page-next disabled" rel="next"
href="" title=""><span></span></a>
<!--
page.parent doesn't seem to be set...
<a class="page-parent disabled" rel="prev" href="" title=""><span></span></a>
-->
</div>
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
<h3 class="title"><a href="../../../about.html">Reference Guide</a></h3>
<ul class="nav-list">
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../applib-ant/about.html">Annotations</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Action.html">Action</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/ActionLayout.html">ActionLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Collection.html">Collection</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/CollectionLayout.html">CollectionLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Column.html">Column</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Digits.html">Digits</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Discriminator.html">Discriminator</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/DomainObject.html">DomainObject</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/DomainObjectLayout.html">DomainObjectLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/DomainService.html">DomainService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/DomainServiceLayout.html">DomainServiceLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Facets.html">Facets</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/HomePage.html">HomePage</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/MemberOrder.html">MemberOrder</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Mixin.html">Mixin</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/NotPersistent.html">NotPersistent.</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Nullable.html">Nullable</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/MinLength.html">MinLength</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Parameter.html">Parameter</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/ParameterLayout.html">ParameterLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Pattern.html">Pattern</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/PersistenceCapable.html">PersistenceCapable</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/PrimaryKey.html">PrimaryKey</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Programmatic.html">Programmatic</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Property.html">Property</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/PropertyLayout.html">PropertyLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/IsisSessionScope.html">RequestScoped</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/Title.html">Title</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/ViewModel.html">ViewModel</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/XmlJavaTypeAdapter.html">XmlJavaTypeAdapter</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-ant/XmlRootElement.html">XmlRootElement</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../applib-methods/about.html">Methods</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-methods/prefixes.html">Supporting Method Prefixes</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-methods/reserved.html">Reserved Methods</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-methods/lifecycle.html">Lifecycle Methods</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../about.html">Classes</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../events.html">Events</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../ViewModel.html"><code>ViewModel</code></a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../value-types.html">Value Types</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../spec.html">Specification pattern</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../i18n.html">i18n support</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../roles-mixins-contributees.html">Roles, Mixins and Contributees</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../utility.html">Utility Classes</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../layout.html">Layout</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../applib-svc/about.html">Domain Services</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/AcceptHeaderService.html">AcceptHeaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/ApplicationFeatureRepository.html">ApplicationFeatureRepository</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/AuditerService.html">AuditerService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/BookmarkService.html">BookmarkService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/BookmarkUiService.html">BookmarkUiService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/ClockService.html">ClockService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/CommandContext.html">CommandContext</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/CommandDtoProcessorService.html">CommandDtoProcessorService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/CommandExecutorService.html">CommandExecutorService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/CommandService.html">CommandService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/ConfigurationMenu.html">ConfigurationMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/ConfigurationViewService.html">ConfigurationViewService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/ContentMappingService.html">ContentMappingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/DeepLinkService.html">DeepLinkService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/EmailNotificationService.html">EmailNotificationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/EmailService.html">EmailService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/ErrorReportingService.html">ErrorReportingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/EventBusService.html">EventBusService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/ExceptionRecognizerService.html">ExceptionRecognizerService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/FactoryService.html">FactoryService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/GridLoaderService.html">GridLoaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/GridService.html">GridService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/GridSystemService.html">GridSystemService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/HealthCheckService.html">HealthCheckService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/HintStore.html">HintStore</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/HomePageResolverService.html">HomePageResolverService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/InteractionContext.html">InteractionContext</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/JaxbService.html">JaxbService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/LayoutService.html">LayoutService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/LayoutServiceMenu.html">LayoutServiceMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/LocaleProvider.html">LocaleProvider</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/MenuBarsLoaderService.html">MenuBarsLoaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/MenuBarsService.html">MenuBarsService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/MessageService.html">MessageService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/MetaModelService.html">MetamodelService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/MetaModelServiceMenu.html">MetamodelServiceMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/MetricsService.html">MetricsService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/PublisherService.html">PublisherService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/QueryResultsCache.html">QueryResultsCache</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/RepositoryService.html">RepositoryService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/RoutingService.html">RoutingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/Scratchpad.html">Scratchpad</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/ServiceInjector.html">ServiceInjector</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/ServiceRegistry.html">ServiceRegistry</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/SessionLoggingService.html">SessionLoggingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/SudoService.html">SudoService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/SwaggerService.html">SwaggerService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/TableColumnOrderService.html">TableColumnOrderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/TitleService.html">TitleService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/TranslationService.html">TranslationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/TranslationsResolver.html">TranslationsResolver</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/TransactionService.html">TransactionService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/UrlEncodingService.html">UrlEncodingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/UserProfileService.html">UserProfileService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/UserRegistrationService.html">UserRegistrationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/UserService.html">UserService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/WrapperFactory.html">WrapperFactory</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/XmlService.html">XmlService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-svc/XmlSnapshotService.html">XmlSnapshotService</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../config/about.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.applib.html">Applib</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.core.meta-model.html">Core MetaModel</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.core.meta-model.introspector.html">Core MetaModel Introspection</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.core.meta-model.validator.html">MetaModel Validator</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.core.runtime.html">Core Runtime Services configurations</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.core.runtime-services.html">Core Runtime Services configurations</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.security.shiro.html">Shiro Security Implementation</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.persistence.jdo-datanucleus.html">JDO DataNucleus</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.persistence.jdo-datanucleus.impl.html">DataNucleus Configuration</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.viewer.restfulobjects.html">Restful Objects Viewer</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.viewer.wicket.html">Wicket Viewer</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.extensions.html">Extensions</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.value-types.html">Value types</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.testing.html">Testing</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/isis.legacy.html">Legacy</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/resteasy.html">RestEasy Configuration</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../config/sections/Other.html">Other</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../schema/about.html">Schema</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../schema/mml.html">MetaModel</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../schema/cmd.html">Command</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../schema/ixn.html">Interaction</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../schema/chg.html">Changes</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../schema/common.html">Common</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="nav-panel-explore" data-panel="explore">
<div class="context">
<span class="title">Reference Guide</span>
<span class="version">2.0.0-M3</span>
</div>
<ul class="components">
<li class="component">
<span class="title"> </span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../docs/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">BC Mappings Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../mappings/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Committers' Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../comguide/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Contributors' Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../conguide/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Design Docs</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../core/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Extensions Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../extensions/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Incubator Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../incubator/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">JDO/DataNucleus</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../pjdo/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Legacy Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../legacy/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component is-current">
<span class="title">Reference Guide</span>
<ul class="versions">
<li class="version is-current is-latest">
<a href="../../../about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Release Notes</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../relnotes/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Restful Objects Viewer</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../vro/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Security Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../security/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Setup Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../setupguide/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Subdomains Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../subdomains/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Testing Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../testing/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">User Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../userguide/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Value Types Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../valuetypes/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Wicket Viewer</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../vw/2.0.0-M3/about.html">2.0.0-M3</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</aside>
</div>
<main role="main">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
<a href="../../../../../docs/2.0.0-M3/about.html" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
<li><a href="../../../about.html">Reference Guide</a></li>
<li><a href="Object.html"><code>Object</code></a></li>
</ul>
</nav>
<div class="edit-this-page"><a href="https://github.com/apache/isis/edit/2.0.0-M3/api/applib/src/main/adoc/modules/applib-classes/pages/roles-mixins-contributees/mixins/Object.adoc">Edit</a></div>
</div>
<article class="doc">
<a name="section-top"></a>
<h1 class="page"><code>Object</code></h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>The framework provides a single mixin that contributes to simply <code>java.lang.Object</code>.
It provides the ability to download the layout XML for any domain object (in practical terms: entities and view models).</p>
</div>
<div class="paragraph">
<p>These mixin actions are all associated with the "Metadata" fieldset.
A number of other <a href="../../about.html#Persistable" class="page">mixins</a> also contribute properties or actions to the "Metadata" fieldset.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="clearHints"><a class="anchor" href="#clearHints"></a><code>clearHints()</code></h2>
<div class="sectionbody">
<div class="paragraph">
<p>When a domain object is rendered the end-user can select different tabs, and for collections can sort the columns,
navigate to second pages, or select different views of collections.
If the user revisits that object, the <a href="../../../../../vw/2.0.0-M3/about.html" class="page">Wicket viewer</a> will remember these hints and render the domain object in the same state.
These rendering hints are also included if the user copies the URL using the anchor link (to right hand of the object&#8217;s title).</p>
</div>
<div class="paragraph">
<p>The <code>Object_clearHints</code> mixin provides the ability for the end-user to discard these hints so that the object is
rendered in its initial state:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public void clearHints() {
...
}</code></pre>
</div>
</div>
<div class="sect2">
<h3 id="related-services"><a class="anchor" href="#related-services"></a>Related Services</h3>
<div class="paragraph">
<p>This mixin uses the <a href="../../../applib-svc/HintStore.html" class="page"><code>HintStore</code></a> service to store and retrieve UI hints for each rendered object, per user.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="downloadlayoutxml"><a class="anchor" href="#downloadlayoutxml"></a><code>downloadLayoutXml()</code></h2>
<div class="sectionbody">
<div class="paragraph">
<p>The <code>Object_downloadLayoutXml</code> mixin provides an action to download the <a href="../../../../../userguide/2.0.0-M3/fun/ui.html#object-layout" class="page">layout XML</a> for the current domain object.
It has the following signature:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public Object downloadLayoutXml(
@ParameterLayout(named = "File name")
final String fileName,
final LayoutService.Style style) { <i class="conum" data-value="1"></i><b>(1)</b>
...
}</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td>either current, complete, normalized or minimal.</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>See the documentation on <a href="../../../../../userguide/2.0.0-M3/fun/ui.html#object-layout" class="page">layout XML</a> and also
the <a href="../../../applib-svc/LayoutService.html" class="page"><code>LayoutService</code></a> for more information on these styles</p>
</div>
<div class="sect2">
<h3 id="related-services-2"><a class="anchor" href="#related-services-2"></a>Related Services</h3>
<div class="paragraph">
<p>This mixin calls <a href="../../../applib-svc/LayoutService.html" class="page"><code>LayoutService</code></a> to obtain the layout XML.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rebuildMetamodel"><a class="anchor" href="#rebuildMetamodel"></a><code>rebuildMetamodel()</code></h2>
<div class="sectionbody">
<div class="paragraph">
<p>The <code>Object_rebuildMetamodel</code> mixin provides the ability to discard the current internal metamodel data (an instance of <code>ObjectSpecification</code>) for the domain class of the rendered object, and recreate from code and other sources (most notably, layout XML data).
It has the following signature:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public void rebuildMetamodel() {
...
}</code></pre>
</div>
</div>
<div class="sect2">
<h3 id="related-services-3"><a class="anchor" href="#related-services-3"></a>Related Services</h3>
<div class="paragraph">
<p>This mixin calls <a href="#refguide:applib-svc:MetamodelService.adoc" class="page unresolved"><code>MetaModelService</code></a> and the <a href="../../../applib-svc/GridService.html" class="page"><code>GridService</code></a> to invalidate their caches.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="openrestapi"><a class="anchor" href="#openrestapi"></a><code>openRestApi()</code></h2>
<div class="sectionbody">
<div class="paragraph">
<p>The <code>Object_openRestApi</code> mixin provides an action to navigate to the URL of the <a href="../../../../../vro/2.0.0-M3/about.html" class="page">Restful Objects resource</a> corresponding to the domain object.
It has the following signature:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public URL openRestApi() { /* ... */ }</code></pre>
</div>
</div>
<div class="sect2">
<h3 id="related-services-4"><a class="anchor" href="#related-services-4"></a>Related Services</h3>
<div class="paragraph">
<p>This mixin calls <a href="../../../applib-svc/BookmarkService.html" class="page"><code>BookmarkService</code></a> to build the URL.</p>
</div>
</div>
</div>
</div>
</article>
<aside class="article-aside toc hide-for-print" role="navigation">
<p class="toc-title">On this page</p>
<div id="article-toc"></div>
</aside>
</main>
</div>
<footer class="footer">
<div class="content">
<div class="copyright">
<p>
Copyright © 2010~2020 The Apache Software Foundation, licensed under the Apache License, v2.0.
<br/>
Apache, the Apache feather logo, Apache Isis, and the Apache Isis project logo are all trademarks of The Apache Software Foundation.
</p>
</div>
<div class="revision">
<p>Revision: SNAPSHOT</p>
</div>
</div>
</footer>
<script src="../../../../../_/js/site.js"></script>
<script async src="../../../../../_/js/vendor/highlight.js"></script>
<script src="../../../../../_/js/vendor/jquery-3.4.1.min.js"></script>
<script src="../../../../../_/js/vendor/jquery-ui-1.12.1.custom.widget-only.min.js"></script>
<script src="../../../../../_/js/vendor/jquery.tocify.min.js"></script>
<script>
$(function() {
$("#article-toc").tocify( {
showEffect: "slideDown",
hashGenerator: "pretty",
hideEffect: "slideUp",
selectors: "h2, h3",
scrollTo: 120,
smoothScroll: true,
theme: "jqueryui",
highlightOnScroll: true
} );
});
</script>
<script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
<script>
function focusSearchInput () { document.querySelector('#algolia-search-input').focus() }
var search = docsearch({
appId: '5ISP5TFAEN',
apiKey: '0fc51c28b4ad46e7318e96d4e97fab7c',
indexName: 'isis-apache-org',
inputSelector: '#algolia-search-input',
autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
debug: false,
}).autocomplete
search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
focusSearchInput()
window.addEventListener('load', focusSearchInput);
</script>
<!--
docsearch options:
https://docsearch.algolia.com/docs/behavior/
-->
<!--
https://www.algolia.com/doc/api-reference/api-parameters/
algoliaOptions: { hitsPerPage: 6 },
-->
</body>
</html>