/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
class MyManager {
public MyManager
(String name
) { this.name = name;
}
void startTask() {
System.
out.
println("My name is " + name
); }
}
class MySingleton {
private MyManager mManager;
private static MySingleton mInstance;
private MySingleton() {
}
public static MySingleton getInstance() {
if (mInstance == null) {
mInstance = new MySingleton();
}
return mInstance;
}
public MyManager getManagerByName
(String name
) { //I don’t show the GET_MGR function, it is a 3rd party library function
mManager = GET_MGR(name);
return mManager;
}
private MyManager GET_MGR
(String name
) { return new MyManager(name);
}
public void doTask() {
mManager.startTask();
}
}
public class Main {
public static void main
(String[] args
) { MySingleton.getInstance().getManagerByName("aioobe");
MySingleton.getInstance().doTask();
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgoKY2xhc3MgTXlNYW5hZ2VyIHsKICAgIFN0cmluZyBuYW1lOwogICAgcHVibGljIE15TWFuYWdlcihTdHJpbmcgbmFtZSkgewogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICB9CiAgICB2b2lkIHN0YXJ0VGFzaygpIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk15IG5hbWUgaXMgIiArIG5hbWUpOwogICAgfQp9CgpjbGFzcyBNeVNpbmdsZXRvbiB7CiAgcHJpdmF0ZSBNeU1hbmFnZXIgbU1hbmFnZXI7CiAgcHJpdmF0ZSBzdGF0aWMgTXlTaW5nbGV0b24gbUluc3RhbmNlOwoKICBwcml2YXRlIE15U2luZ2xldG9uKCkgewogIH0KCiAgcHVibGljIHN0YXRpYyBNeVNpbmdsZXRvbiBnZXRJbnN0YW5jZSgpIHsKICAgICBpZiAobUluc3RhbmNlID09IG51bGwpIHsKICAgICAgICBtSW5zdGFuY2UgPSBuZXcgTXlTaW5nbGV0b24oKTsKICAgICB9CiAgICAgcmV0dXJuIG1JbnN0YW5jZTsKICB9CgogIHB1YmxpYyBNeU1hbmFnZXIgZ2V0TWFuYWdlckJ5TmFtZShTdHJpbmcgbmFtZSkgewogICAgIC8vSSBkb27igJl0IHNob3cgdGhlIEdFVF9NR1IgZnVuY3Rpb24sIGl0IGlzIGEgM3JkIHBhcnR5IGxpYnJhcnkgZnVuY3Rpb24KICAgICBtTWFuYWdlciA9IEdFVF9NR1IobmFtZSk7CiAgICAgcmV0dXJuIG1NYW5hZ2VyOwogIH0KCiAgcHJpdmF0ZSBNeU1hbmFnZXIgR0VUX01HUihTdHJpbmcgbmFtZSkgewogICAgICByZXR1cm4gbmV3IE15TWFuYWdlcihuYW1lKTsKICB9CiAgCiAgcHVibGljIHZvaWQgZG9UYXNrKCkgewogICAgIG1NYW5hZ2VyLnN0YXJ0VGFzaygpOwogIH0KCn0KCnB1YmxpYyBjbGFzcyBNYWluIHsKCiAgICAKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBNeVNpbmdsZXRvbi5nZXRJbnN0YW5jZSgpLmdldE1hbmFnZXJCeU5hbWUoImFpb29iZSIpOwogICAgICAgIE15U2luZ2xldG9uLmdldEluc3RhbmNlKCkuZG9UYXNrKCk7CiAgICB9CiAgICAKfQ==