Package eu.scape_project.planning.model

Examples of eu.scape_project.planning.model.PlanProperties


                if (newOwner != null) {
                    User user = em.createQuery("Select u from User u where u.username = :username", User.class)
                        .setParameter("username", newOwner).getSingleResult();

                    for (Plan p : plans) {
                        PlanProperties prop = p.getPlanProperties();
                        prop.setDescription(newOwner + "'s copy of: " + prop.getDescription()
                            + " (originally created by " + prop.getOwner() + ")");
                        prop.setOwner(newOwner);
                        // mark this plan as a playground copy
                        prop.setPlayground(true);
                        prop.touch();
                        PrepareChangesForPersist prep = new PrepareChangesForPersist(newOwner);
                        prep.prepare(prop);

                        String message = "A copy has been created: <em>"
                            + prop.getName()
                            + " - "
                            + prop.getDescription()
                            + "</em>"
                            + "<br/>It is marked as playground. If you want to use it for serious planning, please change this in Plan Settings.";
                        notification = new Notification(UUID.randomUUID().toString(), new Date(), "PLATO", message,
                            user);
                    }
View Full Code Here


     *
     * @param plan
     * @return
     */
    private PlanStatistics generateStatistics(Plan plan) {
        PlanProperties properties = plan.getPlanProperties();
        ProjectBasis basis = plan.getProjectBasis();
        SampleRecordsDefinition samples = plan.getSampleRecordsDefinition();

        long numSamples = samples.getRecords().size();
        List<Leaf> leaves = plan.getTree().getRoot().getAllLeaves();
        long numLeaves = leaves.size();
        long numMappedLeaves = 0;
        long numMeasuresNeededTotal = 0;
        long numEvaluated = 0;
        long numAlternatives = plan.getAlternativesDefinition().getAlternatives().size();
        long numConsideredAlternatives = plan.getAlternativesDefinition().getConsideredAlternatives().size();

        // determine the number of users who have been working on the plan
        ChangelogStatistics changelogStatistics = new ChangelogStatistics();
        plan.handleChanges(changelogStatistics);
        int numDistinctUsers = changelogStatistics.getNumberOfUsers();

        double percentageDefinedTransformers = 0.0;
        List<String> consideredAltNames = new ArrayList<String>();
        for (Alternative alt : plan.getAlternativesDefinition().getConsideredAlternatives()) {
            consideredAltNames.add(alt.getName());
        }
        List<ValidationError> errors = new ArrayList<ValidationError>();
        for (Iterator<Leaf> iter = leaves.iterator(); iter.hasNext();) {
            Leaf l = iter.next();
            if (l.isMapped()) {
                numMappedLeaves++;
            }
            int numMeasuresNeeded = 0;
            if (l.isSingle()) {
                numMeasuresNeeded += numConsideredAlternatives;
            } else {
                numMeasuresNeeded += (numConsideredAlternatives * numSamples);
            }
            numMeasuresNeededTotal += numMeasuresNeeded;

            for (Iterator<String> alts = consideredAltNames.iterator(); alts.hasNext();) {
                String alt = alts.next();
                Values values = l.getValues(alt);
                if (values != null) {
                    for (Iterator<Value> valueiter = values.getList().iterator(); valueiter.hasNext();) {
                        Value value = valueiter.next();
                        if ((value != null) && (value.getScale() != null) && value.isEvaluated()) {
                            numEvaluated++;
                        }
                    }
                }
            }

            if (l.getTransformer() != null) {
                if (l.isCompletelyTransformed(errors)) {
                    percentageDefinedTransformers += 1;
                }
            }
        }
        percentageDefinedTransformers = percentageDefinedTransformers / numLeaves;
        double percentagePopulatedValues = (numMeasuresNeededTotal == 0) ? 0.0 : numEvaluated
            / (double) numMeasuresNeededTotal;

        String creatorUsername = properties.getOwner();
        String creatorEmail = null;
        try {
            if (em != null) {
                creatorEmail = em.createQuery("select email from User where username = :username", String.class)
                    .setParameter("username", creatorUsername).getSingleResult();
            }
        } catch (Exception e) {
            LOGGER.debug("Failed to retrieve creator email.", e);
        }
        int numPlansCreated = 0;

        try {
            if (em != null) {
                numPlansCreated = (em.createQuery("select count(*) from PlanProperties p where p.owner = :username",
                    Long.class).setParameter("username", creatorUsername).getSingleResult()).intValue();
            }
        } catch (Exception e) {
            LOGGER.debug("Failed to determine number of plans created", e);
        }
        Date decisionOn = null;
        if (plan.getRecommendation().getAlternative() != null) {
            decisionOn = new Date(plan.getRecommendation().getChangeLog().getChanged()); // decision
                                                                                         // on
        }

        PlanStatistics statistics = new PlanStatistics(
            plan.getId(),
            properties.getId(),
            creatorUsername,
            properties.getAuthor(),
            creatorEmail,
            properties.getName(),
            properties.getState().getValue(), // "status"
            new Date(plan.getChangeLog().getCreated()), // created on
            decisionOn, // decision on
            properties.getChangeLog().getChanged(), // "stage last accessed"
            properties.getState().getValue(), // "highest stage achieved"
            numSamples, // # samples
            numLeaves, // # leaves
            numMappedLeaves, // # mapped leaves
            numMeasuresNeededTotal, // # measures needed
            numAlternatives, // # alternatives
            StringUtils.length(basis.getDocumentTypes()), StringUtils.length(properties.getDescription()),
            StringUtils.length(basis.getMandate()), StringUtils.length(basis.getPlanningPurpose()),
            StringUtils.length(basis.getDesignatedCommunity()), StringUtils.length(basis.getApplyingPolicies()),
            StringUtils.length(basis.getOrganisationalProcedures()), StringUtils.length(basis.getPreservationRights()),
            StringUtils.length(basis.getReferenceToAgreements()), StringUtils.length(basis.getPlanRelations()),
            StringUtils.length(basis.getTriggers().getNewCollection().getDescription()), StringUtils.length(basis
View Full Code Here

        List<Plan> plans = parser.importProjects(in);

        Assert.assertTrue(plans.size() == 1);

        Plan plan = plans.get(0);
        PlanProperties pp = plan.getPlanProperties();

        Assert.assertTrue("PlanParser Test - minimal".equals(pp.getName()));
        Assert.assertTrue("Test".equals(pp.getDescription()));
        Assert.assertTrue("Test1 Test1".equals(pp.getAuthor()));
        Assert.assertTrue("TUW".equals(pp.getOrganization()));
        Assert.assertTrue(pp.isPrivateProject());
        Assert.assertFalse(pp.isReportPublic());
        Assert.assertTrue(pp.getState() == PlanState.PLAN_VALIDATED);
        Assert.assertTrue("test1".equals(pp.getOwner()));
        Assert.assertNotNull(pp.getReportUpload());
        Assert.assertTrue("".equals(pp.getOpenedByUser()));

        Assert.assertNotNull(pp.getChangeLog());
        Assert.assertTrue("test1".equals(pp.getChangeLog().getCreatedBy()));
    }
View Full Code Here

     * @return the plan
     */
    private Plan generateBasicPlan() {
        Plan p = new Plan();

        PlanProperties planProperties = new PlanProperties();
        p.setPlanProperties(planProperties);

        return p;
    }
View Full Code Here

     * Generates plan properties.
     *
     * @return the plan properties
     */
    private PlanProperties generatePlanProperties() {
        PlanProperties planProperties = new PlanProperties();
        planProperties.setAuthor("Author");
        planProperties.setName("Name");
        planProperties.setDescription("Description");
        planProperties.setOrganization("Organization");
        planProperties.setOwner("Owner");
        planProperties.setPrivateProject(true);
        planProperties.setReportPublic(true);
        planProperties.setRepositoryIdentifier("Repository ID");
        planProperties.setReportUpload(generateDigitalObject());
        planProperties.setState(PlanState.CREATED);

        return planProperties;
    }
View Full Code Here

            String msg = "Please consider that because data underlying the preservation plan has been changed, the uploaded report was automatically removed. ";
            msg += "If you would like to make the updated report available, please generate it again and upload it in 'Plan Settings'.";
            facesMessages.addInfo(msg);
        }

        PlanProperties planProperties = em.merge(plan.getPlanProperties());
        em.persist(planProperties);
        plan.setPlanProperties(planProperties);

        em.persist(em.merge(entity));
    }
View Full Code Here

TOP

Related Classes of eu.scape_project.planning.model.PlanProperties

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.