view src/main/java/alice/test/codesegment/local/factorial/FactorialCodeSegment.java @ 523:145c425db88d dispose

add CompressedLDSM
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Thu, 09 Apr 2015 18:36:26 +0900
parents
children 15eeb439830c
line wrap: on
line source

package alice.test.codesegment.local.factorial;

import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.Receiver;

/**
 * Created by e125769 on 2/24/15.
 */
public class FactorialCodeSegment extends CodeSegment {

    Receiver input[];

    public  FactorialCodeSegment(int n, String key){//5個Receiverを作る
        input = new Receiver[n];
        for (int i = 0; i < n; i++){
            input[i] = ids.create(CommandType.TAKE);//take用Receiverを生成
        }
        for (int i = 0; i < n; i++){//createと同じループではだめ。修論参照。
            input[i].setKey(key);
        }
    }

    @Override
    public void run() {//main.
        System.out.println("run FactorialCodeSegment");

        long result = 1;

        for (int i = 0; i < input.length; i++){//わける
            result *= input[i].asClass(Long.class);//(int)r.getObj(); , asInteger Remoteは別。byteArrayだから
        }

        System.out.println(input[input.length - 1].asClass(Long.class) + "まで: " + result);

        ods.put("key1", result);

        if (input[0].key.equals("key1")){
            new FactorialCodeSegment(4, "key1");//setKeyよりあとに操作しない
        }

        System.exit(0);

    }

}