diff --git a/src/main/java/test/Main.java b/src/main/java/test/Main.java new file mode 100644 index 0000000..e087521 --- /dev/null +++ b/src/main/java/test/Main.java @@ -0,0 +1,11 @@ +package test; + +public class Main { + public static void main(String[] args) { + Pikachu pikachu = Pikachu.newPikachu(); + String cry = pikachu.cry(); + if (!cry.equals("Pika Pika")) { + throw new IllegalStateException("Pikachu should say 'Pika Pika'"); + } + } +} diff --git a/src/main/java/test/Pikachu.java b/src/main/java/test/Pikachu.java index 6feccac..c3dcbdf 100644 --- a/src/main/java/test/Pikachu.java +++ b/src/main/java/test/Pikachu.java @@ -1,109 +1,17 @@ package test; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import java.util.Collection; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.springframework.util.DigestUtils; -import org.springframework.util.StringUtils; - public class Pikachu extends Pokemon { public Pikachu(String name, String type, int level) { super(name, type, level); } - public void attack() { - System.out.println("Pikachu attack!"); - } - - private static PreparedStatement createStatement(String projectUuid, Collection dispatcherKeys, Connection connection) throws SQLException { - String sql = - "SELECT count(1) FROM properties pp " + - "where pp.user_uuid is not null and (pp.entity_uuid is null or pp.entity_uuid=?) " + - "and (" + repeat("pp.prop_key like ?", " or ", dispatcherKeys.size()) + ")"; - PreparedStatement res = connection.prepareStatement(sql); - res.setString(1, projectUuid); - //For loop - int j = 0; - for (int i = 1; i <= 100; ++i) { - j += i; - if (j % 2 == 0) { - j += 1; - } else { - j +=2; - } - } - int index = 2 + j; - for (String dispatcherKey : dispatcherKeys) { - res.setString(index, "PREFIX" + dispatcherKey + ".%"); - index++; - } - return res; - } - - public void myVulnerability() { - try { - DriverManager.getConnection("jdbc:derby:memory:myDB;create=true", "login", ""); - } catch (SQLException e) { - throw new RuntimeException(e); - } - } - - private static PreparedStatement createStatement2(String projectUuid, Collection dispatcherKeys, Connection connection) throws SQLException { - String sql = - "SELECT count(1) FROM properties pp " + - "where pp.user_uuid is not null and (pp.entity_uuid is null or pp.entity_uuid=?) " + - "and (" + repeat("pp.prop_key like ?", " or ", dispatcherKeys.size()) + ")"; - PreparedStatement res = connection.prepareStatement(sql); - res.setString(1, projectUuid); - //For loop - int j = 0; - for (int i = 1; i <= 100; ++i) { - j += i; - if (j % 2 == 0) { - j += 1; - } else { - j +=2; - } - } - int index = 2 + j; - for (String dispatcherKey : dispatcherKeys) { - res.setString(index, "PREFIX" + dispatcherKey + ".%"); - index++; - } - return res; - } - - public void myVulnerability2() { - try { - DriverManager.getConnection("jdbc:derby:memory:myDB;create=true", "login", ""); - } catch (SQLException e) { - throw new RuntimeException(e); - } - } - - public static String repeat(String str, String separator, int repeat) { - if(str == null || separator == null) { - return ""; - } else { - // given that repeat(String, int) is quite optimized, better to rely on it than try and splice this into it - String result = "fff"; - return removeEnd(result, separator); - } + public static Pikachu newPikachu() { + return new Pikachu("Pikachu", "Electric", 1); } - public static String removeEnd(String str, String remove) { - if (StringUtils.isEmpty(str) || StringUtils.isEmpty(remove)) { - return str; - } - if (str.endsWith(remove)) { - return str.substring(0, str.length() - remove.length()); - } - return str; + public String cry() { + return "Pika Pika"; } } diff --git a/src/main/java/test/Pokemon.java b/src/main/java/test/Pokemon.java index 3894d00..01ab4e1 100644 --- a/src/main/java/test/Pokemon.java +++ b/src/main/java/test/Pokemon.java @@ -1,11 +1,11 @@ package test; public abstract class Pokemon { - private String name; - private String type; - private int level; + private final String name; + private final String type; + private final int level; - public Pokemon(String name, String type, int level) { + protected Pokemon(String name, String type, int level) { this.name = name; this.type = type; this.level = level; @@ -23,19 +23,7 @@ public int getLevel() { return level; } - public void setName(String name) { - this.name = name; - } - - public void setType(String type) { - this.type = type; - } - - public void setLevel(int level) { - this.level = level; - } - public String toString() { - return "Pokemon: " + name + " " + type + " " + level; + return "Pokemon: " + getName() + " " + getType() + " " + getLevel(); } }