All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.broadleafcommerce.common.presentation.AdminPresentationCollection Maven / Gradle / Ivy

There is a newer version: 3.1.15-GA
Show newest version
/*
 * #%L
 * BroadleafCommerce Common Libraries
 * %%
 * Copyright (C) 2009 - 2013 Broadleaf Commerce
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *       http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */
package org.broadleafcommerce.common.presentation;

import org.broadleafcommerce.common.presentation.client.AddMethodType;
import org.broadleafcommerce.common.presentation.client.OperationType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * This annotation is used to describe a simple persistent collection
 * for use by the admin tool.
 *
 * @author Jeff Fischer
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface AdminPresentationCollection {

    /**
     * 

Optional - field name will be used if not specified

* *

The friendly name to present to a user for this field in a GUI. If supporting i18N, * the friendly name may be a key to retrieve a localized friendly name using * the GWT support for i18N.

* * @return the friendly name */ String friendlyName() default ""; /** *

Optional - only required if you wish to apply security to this field

* *

If a security level is specified, it is registered with the SecurityManager. * The SecurityManager checks the permission of the current user to * determine if this field should be disabled based on the specified level.

* * @return the security level */ String securityLevel() default ""; /** *

Optional - fields are not excluded by default

* *

Specify if this field should be excluded from inclusion in the * admin presentation layer

* * @return whether or not the field should be excluded */ boolean excluded() default false; /** *

Optional - only required if you want to make the field immutable

* *

Explicityly specify whether or not this field is mutable.

* * @return whether or not this field is read only */ boolean readOnly() default false; /** *

Optional - only required if you want to make the field ignore caching

* *

Explicitly specify whether or not this field will use server-side * caching during inspection

* * @return whether or not this field uses caching */ boolean useServerSideInspectionCache() default true; /** *

Optional - only required if you want to lookup an item * for this association, rather than creating a new instance of the * target item. Note - if the type is changed to LOOKUP, this has * the side effect of causing the only the association to be deleted * during a remove, leaving the target lookup entity intact.

* *

Define whether or not added items for this * collection are acquired via search or construction.

* * @return the item is acquired via lookup or construction */ AddMethodType addType() default AddMethodType.PERSIST; /** *

Optional - only required in the absence of a "mappedBy" property * on the JPA annotation

* *

For the target entity of this collection, specify the field * name that refers back to the parent entity.

* *

For collection definitions that use the "mappedBy" property * of the @OneToMany and @ManyToMany annotations, this value * can be safely ignored as the system will be able to infer * the proper value from this.

* * @return the parent entity referring field name */ String manyToField() default ""; /** *

Optional - only required if you want to specify ordering for this field

* *

The order in which this field will appear in a GUI relative to other collections from the same class

* * @return the display order */ int order() default 99999; /** * Optional - only required if you want the field to appear under a different tab * * Specify a GUI tab for this field * * @return the tab for this field */ String tab() default "General"; /** * Optional - only required if you want to order the appearance of the tabs in the UI * * Specify an order for this tab. Tabs will be sorted int he resulting form in * ascending order based on this parameter. * * The default tab will render with an order of 100. * * @return the order for this tab */ int tabOrder() default 100; /** *

Optional - only required if you need to specially handle CRUD operations for this * specific collection on the server

* *

Custom string values that will be passed to the server during CRUD operations on this * collection. These criteria values can be detected in a custom persistence handler * (@CustomPersistenceHandler) in order to engage special handling through custom server * side code for this collection.

* * @return the custom string array to pass to the server during CRUD operations */ String[] customCriteria() default {}; /** *

Optional - only required if a special operation type is required for a CRUD operation. This * setting is not normally changed and is an advanced setting

* *

The operation type for a CRUD operation

* * @return the operation type */ AdminPresentationOperationTypes operationTypes() default @AdminPresentationOperationTypes(addType = OperationType.BASIC, fetchType = OperationType.BASIC, inspectType = OperationType.BASIC, removeType = OperationType.BASIC, updateType = OperationType.BASIC); /** *

Optional - propertyName , only required if you want hide the field based on this property's value

* *

If the property is defined and found to be set to false, in the AppConfiguraionService, then this field will be excluded in the * admin presentation layer

* * @return name of the property */ String showIfProperty() default ""; /** * Optional - If you have FieldType set to SupportedFieldType.MONEY, * * then you can specify a money currency property field. * * * @return the currency property field */ String currencyCodeField() default ""; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy