integration.simpleusages.InSameContext.java Source code

Java tutorial

Introduction

Here is the source code for integration.simpleusages.InSameContext.java

Source

/**
 * Copyright (c) 2011-2013 Darmstadt University of Technology.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     Sebastian Proksch - initial API and implementation
 */
package integration.simpleusages;

import static cc.recommenders.mining.calls.QueryOptions.newQueryOptions;
import integration.AbstractIntegrationTest;

import java.util.List;

import org.junit.Ignore;

import cc.recommenders.evaluation.data.Boxplot;
import cc.recommenders.names.CoReMethodName;
import cc.recommenders.names.CoReTypeName;
import cc.recommenders.usages.DefinitionSite;
import cc.recommenders.usages.DefinitionSites;
import cc.recommenders.usages.Query;
import cc.recommenders.usages.Usage;

import com.google.common.collect.Lists;

@Ignore
public class InSameContext extends AbstractIntegrationTest {

    @Override
    public void init() {
        getQueryOptions().setFrom(newQueryOptions("+METHOD+MIN10"));
    }

    @Override
    public List<Usage> getTrainingData() {
        List<Usage> usages = Lists.newLinkedList();

        for (int i = 0; i < 2; i++) {
            usages.add(createUsageWithB());
        }

        for (int i = 0; i < 1; i++) {
            usages.add(createUsageWithC());
        }

        return usages;
    }

    @Override
    public List<Usage> getValidationData() {
        List<Usage> usages = Lists.newLinkedList();

        usages.add(createUsageWithB());

        return usages;
    }

    @Override
    public Boxplot getExpectation() {
        return new Boxplot(1, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667);
    }

    private static Usage createUsageWithB() {
        Query usage = new Query();

        usage.setType(newType("Lmy/Type"));
        usage.setClassContext(newType("Lmy/Container"));
        usage.setMethodContext(newMethod("Lmy/Container.doit()V"));

        DefinitionSite ds = DefinitionSites.createDefinitionByConstructor(newMethod("Lmy/Type.<init>()V"));
        usage.setDefinition(ds);

        usage.addCallSite(newReceiverCallSite("Lmy/Type.a()V"));
        usage.addCallSite(newReceiverCallSite("Lmy/Type.b()V"));
        return usage;
    }

    private static Usage createUsageWithC() {
        Query usage = new Query();

        usage.setType(CoReTypeName.get("Lmy/Type"));
        usage.setClassContext(CoReTypeName.get("Lmy/Container"));
        usage.setMethodContext(CoReMethodName.get("Lmy/Container.doit()V"));

        DefinitionSite ds = DefinitionSites.createDefinitionByConstructor(CoReMethodName.get("Lmy/Type.<init>()V"));
        usage.setDefinition(ds);

        usage.addCallSite(newReceiverCallSite("Lmy/Type.a()V"));
        usage.addCallSite(newReceiverCallSite("Lmy/Type.c()V"));
        return usage;
    }
}