当前位置: 首页>>代码示例>>Java>>正文


Java Atomic类代码示例

本文整理汇总了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;
}
 
开发者ID:FenixEdu,项目名称:fenixedu-spaces,代码行数:20,代码来源:SpaceOccupantsController.java

示例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);
    }
}
 
开发者ID:FenixEdu,项目名称:fenixedu-spaces,代码行数:21,代码来源:OccupationService.java

示例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);
    }
}
 
开发者ID:FenixEdu,项目名称:fenixedu-spaces,代码行数:20,代码来源:OccupationService.java

示例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;
}
 
开发者ID:FenixEdu,项目名称:fenixedu-spaces,代码行数:22,代码来源:Information.java

示例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;
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:26,代码来源:SiteResource.java

示例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");
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:18,代码来源:SiteResource.java

示例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");
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:20,代码来源:SiteResource.java

示例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;
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:25,代码来源:MenuResource.java

示例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);
    }
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:25,代码来源:AdminComponents.java

示例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());
    }
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:19,代码来源:AdminThemes.java

示例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));
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:23,代码来源:AdminPagesAdvanced.java

示例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());
    }
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:25,代码来源:CreateSite.java

示例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));
  }
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:26,代码来源:AdminPostsService.java

示例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();
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:20,代码来源:Page.java

示例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;
    }
}
 
开发者ID:FenixEdu,项目名称:fenixedu-cms,代码行数:18,代码来源:Site.java


注:本文中的pt.ist.fenixframework.Atomic类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。