Improve detection of version in freemind.

This commit is contained in:
Paulo Gustavo Veiga 2015-03-24 22:30:51 -03:00
parent 0e43964428
commit dff870e3ee
2 changed files with 13 additions and 18 deletions

View File

@ -18,10 +18,12 @@
package com.wisemapping.importer;
import org.jetbrains.annotations.NotNull;
import java.util.*;
public class VersionNumber
implements Comparable {
implements Comparable<VersionNumber> {
protected String version_d;
@ -58,13 +60,13 @@ public class VersionNumber
}
public int compareTo(final Object otherObject) {
public int compareTo(@NotNull final VersionNumber otherObject) {
if (this.equals(otherObject)) {
return 0;
}
final StringTokenizer ownTokenizer = this.getTokenizer();
final StringTokenizer otherTokenizer = ((VersionNumber) otherObject).getTokenizer();
final StringTokenizer otherTokenizer = otherObject.getTokenizer();
while (ownTokenizer.hasMoreTokens()) {
final int ownNumber;
@ -112,8 +114,8 @@ public class VersionNumber
return (version_d != null ? version_d.hashCode() : 0);
}
protected StringTokenizer getTokenizer() {
@NotNull
private StringTokenizer getTokenizer() {
return new StringTokenizer(this.getVersion(), ".");
}
}

View File

@ -96,8 +96,9 @@ public class FreemindImporter
final Map freemindMap = (Map) JAXBUtils.getMapObject(input, "com.wisemapping.jaxb.freemind");
final String version = freemindMap.getVersion();
if (version != null) {
if (version == null || version.startsWith("freeplane")) {
throw new ImporterException("You seems to be be trying to import a Freeplane map. FreePlane is not supported format.");
} else {
final VersionNumber mapVersion = new VersionNumber(version);
if (mapVersion.isGreaterThan(FreemindConstant.SUPPORTED_FREEMIND_VERSION)) {
throw new ImporterException("FreeMind version " + mapVersion.getVersion() + " is not supported.");
@ -134,11 +135,7 @@ public class FreemindImporter
result.setTitle(mapName);
result.setDescription(description);
} catch (JAXBException e) {
throw new ImporterException(e);
} catch (IOException e) {
throw new ImporterException(e);
} catch (TransformerException e) {
} catch (JAXBException | IOException | TransformerException e) {
throw new ImporterException(e);
}
return result;
@ -330,7 +327,7 @@ public class FreemindImporter
}
}
private int getChildrenCountSameSide(@NotNull List<Object> freeChildren, Node freeChild) {
private int getChildrenCountSameSide(@NotNull List<Object> freeChildren, Node freeChild) {
int result = 0;
String childSide = freeChild.getPOSITION();
if (childSide == null) {
@ -500,11 +497,7 @@ public class FreemindImporter
}
final Boolean folded = Boolean.valueOf(freeNode.getFOLDED());
if (folded) {
wiseTopic.setShrink(folded);
}
wiseTopic.setShrink(folded);
}