2024-10-03 14:36:45 +03:00
|
|
|
package Visual_DVM_2021.Passes.Server;
|
2024-10-08 00:39:13 +03:00
|
|
|
import Common.CurrentAnchestor;
|
2024-10-07 00:58:29 +03:00
|
|
|
import Common_old.Current;
|
|
|
|
|
import Common.Database.Objects.riDBObject;
|
2024-10-03 14:36:45 +03:00
|
|
|
import Repository.RepositoryServer;
|
|
|
|
|
public abstract class CloneServerObject<S extends RepositoryServer, D extends riDBObject> extends PublishServerObject<S, D> {
|
|
|
|
|
public D src;
|
|
|
|
|
@Override
|
|
|
|
|
public String getIconPath() {
|
|
|
|
|
return "/icons/MultiFiles.png";
|
|
|
|
|
}
|
|
|
|
|
public CloneServerObject(S server_in, Class<D> d_in) {
|
|
|
|
|
super(server_in, d_in);
|
|
|
|
|
}
|
|
|
|
|
protected abstract Current currentName();
|
|
|
|
|
@Override
|
|
|
|
|
protected boolean canStart(Object... args) throws Exception {
|
|
|
|
|
src=null;
|
2024-10-08 00:39:13 +03:00
|
|
|
if (!CurrentAnchestor.Check(Log, currentName()))
|
2024-10-03 14:36:45 +03:00
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
//---------
|
|
|
|
|
pk = null;
|
|
|
|
|
if (Current.getAccount().CheckRegistered(Log)) {
|
|
|
|
|
target = d.newInstance();
|
2024-10-08 00:39:13 +03:00
|
|
|
target.SynchronizeFields(src=(D) CurrentAnchestor.get(currentName()));
|
2024-10-03 14:36:45 +03:00
|
|
|
//единственное отличие клона - текущий автор
|
|
|
|
|
target.description+=" копия";
|
|
|
|
|
target.sender_name = Current.getAccount().name;
|
|
|
|
|
target.sender_address = Current.getAccount().email;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|