Package org.ganymede.ui

Source Code of org.ganymede.ui.AddTestResultPage

package org.ganymede.ui;

import org.apache.log4j.Logger;

import com.webobjects.appserver.WOContext;
import com.webobjects.eoaccess.EOUtilities;
import com.webobjects.eocontrol.EOEditingContext;
import com.webobjects.eocontrol.EOEnterpriseObject;
import com.webobjects.foundation.NSArray;
import com.webobjects.foundation.NSDictionary;

import er.extensions.components.ERXComponent;
import er.extensions.eof.ERXEC;

public class AddTestResultPage extends ERXComponent {

    private final Logger log = Logger.getLogger(AddTestResultPage.class);

    public AddTestResultPage(WOContext context) {
        super(context);
    }

    @Override
    public void awake() {

        EOEditingContext ec = ERXEC.newEditingContext();

        EOEnterpriseObject result = EOUtilities.createAndInsertInstance(ec, "Result");

        NSDictionary<String,NSArray<Object>> values = context().request().formValues();

        for (String key : values.allKeys()) {

            if (key.equals("when")) {
                String when = values.objectForKey(key).get(0).toString();
                result.takeValueForKey(when, "whence");
            }

            if (key.equals("timezone")) {
                String when = values.objectForKey(key).get(0).toString();
                result.takeValueForKey(when, "timeZone");
            }

            if (key.equals("duration")) {
                Number duration = Long.valueOf(values.objectForKey(key).get(0).toString());
                result.takeValueForKey(duration, "duration");
            }

            if (key.equals("email")) {
                String email = values.objectForKey(key).get(0).toString();
                result.takeValueForKey(email, "email");
            }

            if (key.startsWith("env")) {
                String env = values.objectForKey(key).get(0).toString();
                NSArray<EOEnterpriseObject> found = EOUtilities.objectsMatchingKeyAndValue(ec, "Environment", "info", env);
                EOEnterpriseObject eo;
                if (found == null || found.size() == 0) {
                    eo = EOUtilities.createAndInsertInstance(ec, "Environment");
                    eo.takeValueForKey(env, "info");
                } else {
                    eo = found.get(0);
                }
                result.addObjectToBothSidesOfRelationshipWithKey(eo, "environments");
            }

            if (key.startsWith("vers")) {
                NSArray<String> parts = NSArray.componentsSeparatedByString(values.objectForKey(key).get(0).toString(), " ");
                EOEnterpriseObject eo = EOUtilities.createAndInsertInstance(ec, "VersionDigest");
                eo.takeValueForKey(parts.get(1), "rname");
                eo.takeValueForKey(parts.get(0), "digest");
                result.addObjectToBothSidesOfRelationshipWithKey(eo, "digests");
            }

            if (key.startsWith("fail")) {
                String message = values.objectForKey(key).get(0).toString();
                EOEnterpriseObject eo = EOUtilities.createAndInsertInstance(ec, "Failure");
                eo.takeValueForKey(message, "message");
                result.addObjectToBothSidesOfRelationshipWithKey(eo, "failures");
            }
        }

        ec.saveChanges();
        log.debug("Ok!");
    }
}
TOP

Related Classes of org.ganymede.ui.AddTestResultPage

TOP
Copyright © 2018 www.massapi.com. 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.