Blame view

src/mior/model/SimpleMiorModel.java 1.7 KB
1b1e928cc   glaville   initial import of...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
  package mior.model;
  
  public abstract class SimpleMiorModel extends AbstractMiorModel {
  	
  	protected final int nbMM;
  	protected final int nbOM;
  	
  	protected final MiorMM [] mmList;
  	protected final MiorOM [] omList;
  	protected final int [] associations;
  	protected MiorWorld world;
  	
  	/*public SimpleMiorModel(int nbMM, int nbOM) {
  		this(nbMM, nbOM, nbMM * nbOM);
  	}*/
  	
  	/*
  	public SimpleMiorModel(int nbMM, int nbOM, int associationsSize) {
  		super();
  		this.nbMM = nbMM;
  		this.nbOM = nbOM;
  		this.mmList = new MiorMM[nbMM];
  		this.omList = new MiorOM[nbOM];
  		this.associations = new int[associationsSize];
  		this.world = new MiorWorld(nbMM, nbOM);
  		init(nbMM, nbOM);
  	}*/
  	
  	public SimpleMiorModel(MiorWorld world) {
  		this.world = world;
  		this.nbMM = world.nbMM;
  		this.nbOM = world.nbOM;
  		
  		this.mmList = new MiorMM[nbMM];
  		this.omList = new MiorOM[nbOM];
  		this.associations = new int[nbMM * nbOM];
  		init(nbMM, nbOM);
  	}
  	
  	private void init(int nbMM, int nbOM) {
  		MiorUtils.initRandomMMArray(mmList, world.width);
  		MiorUtils.initRandomOMArray(omList, world.width);
  		MiorUtils.initAssociations(associations);
  		world = new MiorWorld(world);
  	}
  	
  	@Override
  	public final MiorMM[] getMMList() {
  		return mmList;
  	}
  	
  	@Override
  	public final MiorOM[] getOMList() {
  		return omList;
  	}
  	
  	@Override
  	public final MiorWorld getWorld() {
  		return world;
  	}
  	
  	@Override
  	public int getNbSimulations() {
  		return 1;
  	}
  	
  	@Override
  	public final boolean isAccessible(int iMM, int iOM) {
  		return isAccessible(iMM, iOM, 0);
  	}
  	
  	@Override
  	public boolean isAccessible(int iMM, int iOM, int iSim) {
  		return associations[iMM * nbOM + iOM] != -1;
  	}
  	
  	@Override
  	protected void resetImpl() {
  		init(world.nbMM, world.nbOM);
  	}
  	
  }