114 lines
3.1 KiB
Java
114 lines
3.1 KiB
Java
package pl.wat.ms4ds.terenfunkcje;
|
|
|
|
import java.util.StringTokenizer;
|
|
|
|
public class LukDrogowy {
|
|
|
|
private WezelDrogowy[] wezly = new WezelDrogowy[2];
|
|
int id = -1;
|
|
int dlugosc = 0;
|
|
int szerokosc = 0;
|
|
int rodzajNawierzchni = 0;
|
|
boolean jestMostem = false;
|
|
|
|
LukDrogowy() {}
|
|
|
|
LukDrogowy(String opis) {
|
|
if (null == opis || opis.length() == 0){
|
|
SiecDrogowa.logger.debug("Pusty ciag opis w konstruktorze Luku Drogowego.");
|
|
return;
|
|
}
|
|
StringTokenizer st = new StringTokenizer(opis, " \t");
|
|
String[] tokenTable = new String[st.countTokens()];
|
|
for (int i = 0; st.hasMoreTokens(); i++) {
|
|
tokenTable[i] = st.nextToken();
|
|
}
|
|
if (tokenTable.length == 6) {
|
|
try {
|
|
int id = Integer.parseInt(tokenTable[0]);
|
|
WezelDrogowy wezel = SiecDrogowa.instancja.wezly.get(id);
|
|
if (null == wezel)
|
|
SiecDrogowa.logger.warn("Brak wierzcholka (1) poczatkowego luku. [" + opis + "].");
|
|
this.getWezly()[0] = wezel;
|
|
wezel.luki.add(this);
|
|
} catch (NumberFormatException e) {
|
|
SiecDrogowa.logger.warn("Bledne dane w pliku z lukami [Wezel 1].");
|
|
}
|
|
try {
|
|
int id = Integer.parseInt(tokenTable[1]);
|
|
WezelDrogowy wezel = SiecDrogowa.instancja.wezly.get(id);
|
|
if (null == wezel)
|
|
SiecDrogowa.logger.warn("Brak wierzcholka (2) koncowego luku. [" + opis + "].");
|
|
this.getWezly()[1] = wezel;
|
|
wezel.luki.add(this);
|
|
} catch (NumberFormatException e) {
|
|
SiecDrogowa.logger.warn("Bledne dane w pliku z lukami [Wezel 2].");
|
|
}
|
|
if (this.wezly[0].id == this.wezly[1].id) {
|
|
SiecDrogowa.logger.warn("Bledne dane w pliku z lukami [wezly sa identyczne].");
|
|
}
|
|
if (GridCoord.czyIdentyczne(this.wezly[0].idKw, this.wezly[1].idKw)) {
|
|
SiecDrogowa.logger.warn("Bledne dane w pliku z lukami [wezly sa identyczne].");
|
|
}
|
|
try {
|
|
this.dlugosc = Integer.parseInt(tokenTable[2]);
|
|
} catch (NumberFormatException e) {
|
|
SiecDrogowa.logger.warn("Bledne dane w pliku z lukami [Dlugosc].");
|
|
}
|
|
try {
|
|
this.szerokosc = Integer.parseInt(tokenTable[3]);
|
|
} catch (NumberFormatException e) {
|
|
SiecDrogowa.logger.warn("Bledne dane w pliku z lukami [Szerokosc].");
|
|
}
|
|
try {
|
|
this.rodzajNawierzchni = Integer.parseInt(tokenTable[4]);
|
|
} catch (NumberFormatException e) {
|
|
SiecDrogowa.logger.warn("Bledne dane w pliku z lukami [RodzajNawierzchni].");
|
|
}
|
|
try {
|
|
int b = Integer.parseInt(tokenTable[5]);
|
|
this.jestMostem = (b != 0);
|
|
} catch (NumberFormatException e) {
|
|
SiecDrogowa.logger.warn("Bledne dane w pliku z lukami [CzyJestMost].");
|
|
}
|
|
}
|
|
}
|
|
|
|
public int getDlugosc() {
|
|
return dlugosc;
|
|
}
|
|
|
|
public void setDlugosc(int dlugosc) {
|
|
this.dlugosc = dlugosc;
|
|
}
|
|
|
|
public int getSzerokosc() {
|
|
return szerokosc;
|
|
}
|
|
|
|
public void setSzerokosc(int szerokosc) {
|
|
this.szerokosc = szerokosc;
|
|
}
|
|
|
|
public int getRodzajNawierzchni() {
|
|
return rodzajNawierzchni;
|
|
}
|
|
|
|
public void setRodzajNawierzchni(int rodzajNawierzchni) {
|
|
this.rodzajNawierzchni = rodzajNawierzchni;
|
|
}
|
|
|
|
public boolean isJestMostem() {
|
|
return jestMostem;
|
|
}
|
|
|
|
public void setJestMostem(boolean jestMostem) {
|
|
this.jestMostem = jestMostem;
|
|
}
|
|
|
|
public WezelDrogowy[] getWezly() {
|
|
return wezly;
|
|
}
|
|
|
|
}
|