本文整理汇总了Java中pt.ist.fenixframework.Atomic类的典型用法代码示例。如果您正苦于以下问题:Java Atomic类的具体用法?Java Atomic怎么用?Java Atomic使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Atomic类属于pt.ist.fenixframework包,在下文中一共展示了Atomic类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: occupantsManagement
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic(mode = TxMode.WRITE)
private void occupantsManagement(Space space, SpaceOccupantsBean sab) {
SharedOccupation sharedOccup = null;
List<SharedOccupation> sharedOccups = getSharedOccupations(space);
for (SharedOccupation so : sharedOccups) {
if (so.getUser().equals(sab.getUserObject())) {
sharedOccup = so;
}
}
if (sharedOccups.size() == 0 || sharedOccup == null) {
sharedOccup = new SharedOccupation();
}
if (sharedOccup.doConfig(sab)) {
space.addOccupation(sharedOccup);
}
return;
}
示例2: createOccupation
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic
public void createOccupation(String emails, String subject, String description, String selectedSpaces, String config,
String events, OccupationRequest request, User user) throws Exception {
final Set<Space> selectedSpaceSet = selectSpaces(selectedSpaces, user);
final List<Interval> intervals = selectEvents(events);
final Occupation occupation = new Occupation(emails, subject, description, parseConfig(config, intervals));
for (Space space : selectedSpaceSet) {
if (!space.isFree(intervals)) {
throw new Exception(messageSource.getMessage("error.occupations.rooms.is.not.free", new Object[0],
I18N.getLocale()));
}
occupation.addSpace(space);
}
if (request != null) {
request.addOccupation(occupation);
}
if (notificationService != null) {
notificationService.sendEmail(emails, subject, description);
}
}
示例3: editOccupation
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic
public void editOccupation(Occupation occupation, String emails, String subject, String description, String selectedSpaces,
User user) throws Exception {
if (!canManageOccupation(occupation, user)) {
throw new SpaceDomainException("unauthorized.edit.occupation");
}
occupation.setEmails(emails);
occupation.setSubject(subject);
occupation.setDescription(description);
final Set<Space> selectedSpaceSet = selectSpaces(selectedSpaces, user);
occupation.getSpaces().stream().forEach(s -> occupation.removeSpace(s));
for (Space space : selectedSpaceSet) {
if (!space.isFree(occupation.getIntervals())) {
throw new Exception(messageSource.getMessage("error.occupations.rooms.is.not.free", new Object[0],
I18N.getLocale()));
}
occupation.addSpace(space);
}
}
示例4: build
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic(mode = TxMode.WRITE)
public Information build() {
Information info = null;
if (validUntil != null && validFrom.isAfter(validUntil)) {
throw new SpaceDomainException("label.start.date.is.after.end.date");
}
if (blueprintContent == null && spacePhotoContent == null) {
info = new Information(validFrom, validUntil, allocatableCapacity, blueprintNumber, area, name, identification,
metadata, classification, blueprint, spacePhotoSet, user);
} else if (blueprintContent == null && spacePhotoContent != null) {
info = new Information(validFrom, validUntil, allocatableCapacity, blueprintNumber, area, name, identification,
metadata, classification, blueprint, spacePhotoContent, spacePhotoSet, user);
} else if (blueprintContent != null && spacePhotoContent == null) {
info = new Information(validFrom, validUntil, allocatableCapacity, blueprintNumber, area, name, identification,
metadata, classification, blueprintContent, spacePhotoSet, user);
} else {
info = new Information(validFrom, validUntil, allocatableCapacity, blueprintNumber, area, name, identification,
metadata, classification, blueprintContent, spacePhotoContent, spacePhotoSet, user);
}
return info;
}
示例5: createPostFromJson
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic(mode = TxMode.WRITE)
private Post createPostFromJson(Site site, JsonObject jObj) {
PermissionEvaluation.ensureCanDoThis(site, Permission.CREATE_POST);
Post post = new Post(site);
if (jObj.has("name") && !jObj.get("name").isJsonNull() && jObj.get("name").isJsonObject()) {
post.setName(LocalizedString.fromJson(jObj.get("name")));
}
if (jObj.has("slug") && !jObj.get("slug").isJsonNull()) {
post.setSlug(jObj.get("slug").getAsString());
}
if (jObj.has("body") && !jObj.get("body").isJsonNull() && jObj.get("body").isJsonObject()) {
LocalizedString excerpt = null;
if(jObj.has("excerpt") && !jObj.get("excerpt").isJsonNull() && jObj.get("excerpt").isJsonObject()) {
excerpt = LocalizedString.fromJson(jObj.get("excerpt"));
}
post.setBodyAndExcerpt(LocalizedString.fromJson(jObj.get("body")), excerpt);
}
return post;
}
示例6: createPageFromJson
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic(mode = TxMode.WRITE)
private Page createPageFromJson(Site site, JsonObject jObj) {
PermissionEvaluation.ensureCanDoThis(site, Permission.CREATE_PAGE);
if (jObj.has("name") && !jObj.get("name").isJsonNull() && jObj.get("name").isJsonObject()) {
Page page = new Page(site, LocalizedString.fromJson(jObj.get("name")));
if (jObj.has("slug") && !jObj.get("slug").isJsonNull()) {
page.setSlug(jObj.get("slug").getAsString());
}
if (jObj.has("published") && !jObj.get("published").isJsonNull()) {
page.setPublished(jObj.get("published").getAsBoolean());
}
return page;
}
throw CmsDomainException.badRequest("page.missing.name");
}
示例7: createMenuFromJson
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic(mode = TxMode.WRITE)
private Menu createMenuFromJson(Site site, JsonObject jObj) {
if (jObj.has("name") && !jObj.get("name").isJsonNull() && jObj.get("name").isJsonObject()) {
PermissionEvaluation.ensureCanDoThis(site, Permission.CREATE_MENU);
Menu menu = new Menu(site, LocalizedString.fromJson(jObj.get("name")));
if (jObj.has("slug") && !jObj.get("slug").isJsonNull()) {
menu.setSlug(jObj.get("slug").getAsString());
}
if (jObj.has("topMenu") && !jObj.get("topMenu").isJsonNull()) {
menu.setTopMenu(jObj.get("topMenu").getAsBoolean());
}
return menu;
}
throw CmsDomainException.badRequest("menu.missing.name");
}
示例8: createMenuItemFromJson
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic(mode = TxMode.WRITE)
private MenuItem createMenuItemFromJson(Menu menu, JsonObject jObj) {
ensureCanDoThis(menu.getSite(), LIST_MENUS, EDIT_MENU, CREATE_MENU_ITEM);
MenuItem menuItem = new MenuItem(menu);
if (jObj.has("name") && !jObj.get("name").isJsonNull() && jObj.get("name").isJsonObject()) {
menuItem.setName(LocalizedString.fromJson(jObj.get("name")));
}
if (jObj.has("position") && !jObj.get("position").isJsonNull()) {
menuItem.setPosition(jObj.get("position").getAsInt());
}
if (jObj.has("folder") && !jObj.get("folder").isJsonNull()) {
menuItem.setFolder(jObj.get("folder").getAsBoolean());
}
if (jObj.has("url") && !jObj.get("url").isJsonNull()) {
menuItem.setUrl(jObj.get("url").getAsString());
}
return menuItem;
}
示例9: createComponent
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic(mode = TxMode.WRITE)
private void createComponent(Page page, JsonObject json) throws Exception {
ensureCanDoThis(page.getSite(), Permission.EDIT_PAGE_COMPONENTS);
String componentType = json.get("type").getAsString();
ComponentDescriptor descriptor = Component.forType(componentType);
if (descriptor == null) {
throw new IllegalArgumentException("Component '" + componentType + "' is unknown!");
}
if (descriptor.isStateless()) {
@SuppressWarnings("unchecked")
Class<? extends CMSComponent> type = (Class<? extends CMSComponent>) descriptor.getType();
page.addComponents(Component.forType(type));
} else {
JsonObject params = json.get("parameters").getAsJsonObject();
Component instance = descriptor.instantiate(params);
if (instance instanceof StaticPost) {
StaticPost staticPost = (StaticPost) instance;
if (staticPost.getPost().getSite() == null) {
throw CmsDomainException.notFound();
}
}
page.addComponents(instance);
}
}
示例10: duplicateTheme
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic
public void duplicateTheme(CMSTheme orig, String type, String name, String description) {
CMSTheme theme = new CMSTheme();
theme.setType(type);
theme.setName(name);
theme.setDescription(description);
theme.setBennu(orig.getBennu());
theme.setExtended(orig.getExtended());
theme.changeFiles(orig.getFiles());
for (CMSTemplate originalTemplate : orig.getTemplatesSet()) {
CMSTemplate tp = new CMSTemplate();
tp.setTheme(theme);
tp.setFilePath(originalTemplate.getFilePath());
tp.setType(originalTemplate.getType());
tp.setDescription(originalTemplate.getDescription());
tp.setName(originalTemplate.getName());
}
}
示例11: editPage
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic(mode = TxMode.WRITE)
private void editPage(LocalizedString name, String slug, String template, Site s, Page p, boolean published, Group canView) {
p.setName(name);
if (!Objects.equals(slug, p.getSlug())) {
ensureCanDoThis(s, Permission.CHANGE_PATH_PAGES);
p.setSlug(slug);
}
CMSTheme theme = s.getTheme();
if (s != null && s.getTheme() != null && theme != null) {
CMSTemplate t = theme.templateForType(template);
p.setTemplate(t);
}
if (p.getPublished() != published) {
PermissionEvaluation.canDoThis(s, Permission.PUBLISH_PAGES);
p.setPublished(published);
}
if (!p.getCanViewGroup().equals(canView)) {
PermissionEvaluation.canDoThis(s, Permission.PUBLISH_PAGES);
p.setCanViewGroup(canView);
}
Signal.emit(Page.SIGNAL_EDITED, new DomainObjectEvent<>(p));
}
示例12: createSite
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic
private void createSite(LocalizedString name, LocalizedString description, SiteBuilder builder, boolean published, String folder,
boolean embedded, String themeType, Set<String> roles) {
CmsSettings.getInstance().ensureCanManageSettings();
if (builder !=null){
builder.create(name, description);
} else {
Site site = new Site(name, description);
ofNullable(folder).filter(t -> !Strings.isNullOrEmpty(t)).map(FenixFramework::getDomainObject).map(CMSFolder.class::cast)
.ifPresent(site::setFolder);
site.setEmbedded(ofNullable(embedded).orElse(false));
site.updateMenuFunctionality();
site.setPublished(published);
ofNullable(roles).ifPresent(rolesSet->
rolesSet.forEach(role -> new Role(FenixFramework.getDomainObject(role), site)));
ofNullable(themeType).filter(t -> !Strings.isNullOrEmpty(t)).map(CMSTheme::forType).ifPresent(site::setTheme);
SiteActivity.createdSite(site, Authenticate.getUser());
}
}
示例13: processPostChanges
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic(mode = Atomic.TxMode.WRITE)
public void processPostChanges(Site site, Post post, JsonObject postJson) {
LocalizedString name = Post.sanitize(LocalizedString.fromJson(postJson.get("name")));
LocalizedString body = Post.sanitize(LocalizedString.fromJson(postJson.get("body")));
LocalizedString excerpt = Post.sanitize(LocalizedString.fromJson(postJson.get("excerpt")));
String slug = ofNullable(postJson.get("slug"))
.map(JsonElement::getAsString).orElse(post.getSlug());
if(!post.getName().equals(name)) {
post.setName(name);
}
if(!post.getBody().equals(body) || ( post.getExcerpt()==null && excerpt!=null ) || !post.getExcerpt().equals(excerpt)) {
post.setBodyAndExcerpt(body, excerpt);
}
if(!post.getSlug().equals(slug)) {
post.setSlug(slug);
}
processCategoryChanges(site, post, postJson);
processFileChanges(site, post, postJson);
processPublicationChanges(site, post, postJson);
post.fixOrder(post.getFilesSorted());
Signal.emit(Post.SIGNAL_EDITED,new DomainObjectEvent<>(post));
}
示例14: delete
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic
public void delete() {
logger.info("Page " + getSlug() + " - " + getExternalId() + " of Site " + getSite().getSlug() +
" deleted by user "+ Authenticate.getUser().getExternalId());
Signal.emit(SIGNAL_DELETED, this.getOid());
for (Component component : getComponentsSet()) {
removeComponents(component);
component.delete();
}
getMenuItemsSet().stream().forEach(MenuItem::delete);
setTemplate(null);
setSite(null);
setCreatedBy(null);
setViewGroup(null);
deleteDomainObject();
}
示例15: getOrCreateCategoryForSlug
import pt.ist.fenixframework.Atomic; //导入依赖的package包/类
@Atomic
/**
* searches for a {@link Category} by slug on this {@link Site} or if one does not exist, creates one.
*
* @param slug the slug of the {@link Category} wanted.
* @param name {@link Category} name.
* @return the {@link Category} with the given slug if it exists on this site, or null otherwise.
*/
public Category getOrCreateCategoryForSlug(String slug, LocalizedString name) {
try {
return categoryForSlug(slug);
} catch (CmsDomainException e) {
Category category = new Category(this, name);
category.setSlug(slug);
return category;
}
}