You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
863 lines
34 KiB
863 lines
34 KiB
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
|
|
// Jad home page: http://www.kpdus.com/jad.html
|
|
// Decompiler options: packimports(3) radix(10) lradix(10)
|
|
|
|
package com.teamcenter.rac.kernel;
|
|
|
|
import com.teamcenter.rac.aif.AIFShell;
|
|
import com.teamcenter.rac.aif.kernel.AbstractAIFSession;
|
|
import com.teamcenter.rac.aif.kernel.InterfaceAIFSessionLogoutListener;
|
|
import com.teamcenter.rac.kernel.tcservices.TcStatefulnessUtil;
|
|
import com.teamcenter.rac.util.*;
|
|
import java.awt.GraphicsEnvironment;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.util.ArrayList;
|
|
import org.apache.log4j.Logger;
|
|
import org.eclipse.core.runtime.Platform;
|
|
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
|
|
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
|
|
|
|
// Referenced classes of package com.teamcenter.rac.kernel:
|
|
// TCComponentDatasetContext, TCComponentDataset, TCSession, TCComponentDatasetDefinition,
|
|
// TCComponentType, NamedReferenceContext, AEShellManager, TCReservationService,
|
|
// TCException, TCComponent, TCClass, InterfaceDatasetAction,
|
|
// PostActionShell, TCPreferenceService, CheckTcAEGMOLicense, AliasOpenAction
|
|
|
|
public class AEShell extends JobChangeAdapter
|
|
{
|
|
|
|
public AEShell(TCComponentDatasetContext tccomponentdatasetcontext, String s, boolean flag, int i)
|
|
{
|
|
this(tccomponentdatasetcontext.getDatasetComponent().getSession(), tccomponentdatasetcontext, s, flag, i);
|
|
}
|
|
|
|
public AEShell(TCSession tcsession, TCComponentDatasetContext tccomponentdatasetcontext, String s, boolean flag, int i)
|
|
{
|
|
m_newFileCreatedTime = -9223372036854775808L;
|
|
m_readOnly = false;
|
|
m_removeFilesAtComplete = true;
|
|
m_session = tcsession;
|
|
m_datasetContext = tccomponentdatasetcontext;
|
|
m_workingDirName = s;
|
|
m_userDefinedDir = flag;
|
|
m_selectedAction = i;
|
|
setAppShellActiveVerdict(true);
|
|
if(m_datasetContext != null)
|
|
{
|
|
File afile[] = m_datasetContext.getFiles();
|
|
if(afile != null)
|
|
{
|
|
m_lastModifiedDate = new long[afile.length];
|
|
for(int j = 0; j < afile.length; j++)
|
|
m_lastModifiedDate[j] = afile[j].lastModified();
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
private boolean isExtensionMatched(String s, String s1)
|
|
{
|
|
boolean flag = false;
|
|
if(s.equalsIgnoreCase("*") || s.equalsIgnoreCase(".*") || s.equalsIgnoreCase("*.*"))
|
|
{
|
|
flag = true;
|
|
} else
|
|
{
|
|
int i = s.indexOf(".");
|
|
String s2 = i < 0 ? s : s.substring(i);
|
|
int j = s2.lastIndexOf("*");
|
|
if(j > 0)
|
|
s2 = s2.substring(0, j);
|
|
i = s1.indexOf(".");
|
|
if(i > 0)
|
|
{
|
|
String s3 = s1.substring(i);
|
|
if(s3.equalsIgnoreCase(s2))
|
|
flag = true;
|
|
else
|
|
if(j > 0 && s3.toLowerCase().indexOf(s2.toLowerCase()) != -1)
|
|
flag = true;
|
|
}
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
private void processNewFiles()
|
|
throws Exception
|
|
{
|
|
String s = m_datasetContext.getDatasetComponent().getType();
|
|
if(s.equalsIgnoreCase("ValidationResultLog"))
|
|
return;
|
|
File file = new File(m_workingDirName);
|
|
String as[] = file.list();
|
|
int i = as.length;
|
|
Registry registry = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("New File Count = ")).append(Integer.toString(i)).append('\n').append("newFileCreatedTime = ").append(Long.toString(m_newFileCreatedTime)).toString());
|
|
if(i == 0)
|
|
return;
|
|
File file1 = new File(m_selectedFileName);
|
|
String s1 = file1.getName();
|
|
String s2 = (new StringBuilder(String.valueOf(s1))).append("%").toString();
|
|
String s3 = (new StringBuilder(String.valueOf(s1))).append("~").toString();
|
|
String s4 = (new StringBuilder("~")).append(s1).toString();
|
|
Object obj = null;
|
|
for(int j = 0; j < i; j++)
|
|
if(s1.equals(as[j]))
|
|
{
|
|
File file2 = new File(file, as[j]);
|
|
long l = file2.lastModified();
|
|
if(l == m_newFileCreatedTime || m_newFileCreatedTime == -9223372036854775808L)
|
|
{
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("Deleting (new) file: ")).append(file2.toString()).toString());
|
|
file2.delete();
|
|
}
|
|
} else
|
|
if(m_selectedMimeType.equals("text/plain") && (as[j].equals(s2) || as[j].equals(s3) || as[j].equals(s4)))
|
|
{
|
|
File file3 = new File(file, as[j]);
|
|
file3.delete();
|
|
}
|
|
|
|
as = file.list();
|
|
i = as.length;
|
|
if(i == 0)
|
|
return;
|
|
TCComponentDataset tccomponentdataset = m_datasetContext.getDatasetComponent();
|
|
TCComponentDatasetDefinition tccomponentdatasetdefinition = tccomponentdataset.getDatasetDefinitionComponent();
|
|
NamedReferenceContext anamedreferencecontext[] = tccomponentdatasetdefinition.getNamedReferenceContexts();
|
|
String as1[] = new String[i];
|
|
String as2[] = new String[i];
|
|
String as3[] = new String[i];
|
|
String as4[] = new String[i];
|
|
File afile[] = new File[i];
|
|
int k = 0;
|
|
boolean flag = false;
|
|
if(Platform.getOS().equals("win32") && tccomponentdataset.getTypeComponent().toString().equals("XMLAuditLog"))
|
|
{
|
|
for(int i1 = 0; i1 < i; i1++)
|
|
{
|
|
File file4 = new File(file, as[i1]);
|
|
if(file4.isDirectory())
|
|
{
|
|
File afile2[] = file4.listFiles();
|
|
File afile3[];
|
|
int i2 = (afile3 = afile2).length;
|
|
for(int l1 = 0; l1 < i2; l1++)
|
|
{
|
|
File file6 = afile3[l1];
|
|
file6.delete();
|
|
}
|
|
|
|
if(!file4.delete())
|
|
logger.info((new StringBuilder("Unable to delete file: ")).append(file4.getAbsoluteFile()).toString());
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|
|
File afile1[] = m_datasetContext.getFiles();
|
|
for(int j1 = 0; j1 < i; j1++)
|
|
{
|
|
boolean flag1 = false;
|
|
File file5 = new File(file, as[j1]);
|
|
if(as[j1].startsWith("~$") && (s1.substring(2).equals(as[j1].substring(2)) || s1.substring(1).equals(as[j1].substring(2)) || s1.equals(as[j1].substring(2))))
|
|
continue;
|
|
if(afile1 != null && afile1.length > 0)
|
|
{
|
|
boolean flag2 = false;
|
|
File afile4[];
|
|
int j3 = (afile4 = afile1).length;
|
|
for(int j2 = 0; j2 < j3; j2++)
|
|
{
|
|
File file7 = afile4[j2];
|
|
if(!file5.equals(file7))
|
|
continue;
|
|
flag2 = true;
|
|
break;
|
|
}
|
|
|
|
if(flag2)
|
|
{
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("excluding exported file= ")).append(file5.toString()).toString());
|
|
continue;
|
|
}
|
|
}
|
|
String s5 = file5.getName();
|
|
if(anamedreferencecontext != null)
|
|
{
|
|
NamedReferenceContext anamedreferencecontext1[];
|
|
int k3 = (anamedreferencecontext1 = anamedreferencecontext).length;
|
|
for(int k2 = 0; k2 < k3; k2++)
|
|
{
|
|
NamedReferenceContext namedreferencecontext = anamedreferencecontext1[k2];
|
|
String s9 = namedreferencecontext.getFileTemplate();
|
|
int i4 = s9.indexOf(".");
|
|
if(i4 > -1)
|
|
s9 = s9.substring(i4);
|
|
if(!s5.endsWith(s9))
|
|
continue;
|
|
as1[k] = namedreferencecontext.getNamedReference();
|
|
as2[k] = namedreferencecontext.getFileFormat();
|
|
as4[k] = file5.getPath();
|
|
as3[k] = null;
|
|
afile[k] = file5;
|
|
k++;
|
|
flag1 = true;
|
|
break;
|
|
}
|
|
|
|
if(!flag1)
|
|
{
|
|
NamedReferenceContext anamedreferencecontext2[];
|
|
int l3 = (anamedreferencecontext2 = anamedreferencecontext).length;
|
|
for(int l2 = 0; l2 < l3; l2++)
|
|
{
|
|
NamedReferenceContext namedreferencecontext1 = anamedreferencecontext2[l2];
|
|
String s10 = namedreferencecontext1.getFileTemplate();
|
|
if(!isExtensionMatched(s10, s5))
|
|
continue;
|
|
as1[k] = namedreferencecontext1.getNamedReference();
|
|
as2[k] = namedreferencecontext1.getFileFormat();
|
|
as4[k] = file5.getPath();
|
|
as3[k] = null;
|
|
afile[k] = file5;
|
|
k++;
|
|
flag1 = true;
|
|
break;
|
|
}
|
|
|
|
}
|
|
}
|
|
if(!flag1)
|
|
{
|
|
String s6 = null;
|
|
int i3 = s5.lastIndexOf(".");
|
|
if(i3 > 0)
|
|
s6 = s5.substring(i3);
|
|
else
|
|
s6 = "*";
|
|
String s7 = (new StringBuilder(String.valueOf(registry.getString("unableImportFile.MSG1")))).append(" ").append(file5.getPath()).toString();
|
|
String s8 = (new StringBuilder(String.valueOf(registry.getString("unableImportFile.MSG2")))).append(" '").append(s6).append("'. ").append(file5.getPath()).append(" ").append(registry.getString("unableImportFile.MSG3")).toString();
|
|
if(GraphicsEnvironment.isHeadless())
|
|
logger.error((new StringBuilder(String.valueOf(s7))).append(": ").append(s8).toString());
|
|
else
|
|
MessageBox.post(s7, s8, registry.getString("unableImportFile.TITLE"), 1);
|
|
}
|
|
}
|
|
|
|
if(k > 0)
|
|
{
|
|
m_version0.setFiles(as4, as2, as3, as1);
|
|
m_fileSaved = true;
|
|
for(int k1 = 0; k1 < k; k1++)
|
|
if(!afile[k1].delete())
|
|
logger.info((new StringBuilder("File ")).append(afile[k1].getAbsoluteFile()).append(" not deleted.").toString());
|
|
|
|
}
|
|
}
|
|
|
|
private void removeFiles()
|
|
{
|
|
if(m_removeFilesAtComplete)
|
|
{
|
|
File file = new File(m_workingDirName);
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder()).append(this).append(".removeFiles(): WorkingDir [").append(file).append("]").toString());
|
|
String as[] = file.list();
|
|
int i = as != null ? as.length : 0;
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("WorkingDir [")).append(file).append("] contains ").append(i).append(" files").toString());
|
|
for(short word0 = 0; word0 < i; word0++)
|
|
{
|
|
File file1 = new File(file, as[word0]);
|
|
try
|
|
{
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("Deleting file [")).append(file1).append("] from WorkingDir [").append(file).append("]").toString());
|
|
if(!file1.delete())
|
|
logger.info((new StringBuilder("Unable to delete file :")).append(file1.getAbsolutePath()).toString());
|
|
}
|
|
catch(SecurityException _ex)
|
|
{
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("Unable to delete file [")).append(file1).append("] from WorkingDir [").append(file).append("], error ignored...").toString());
|
|
}
|
|
}
|
|
|
|
if(!m_userDefinedDir && !file.delete())
|
|
logger.info((new StringBuilder("Failed to delete directory ")).append(file.getAbsolutePath()).toString());
|
|
}
|
|
}
|
|
|
|
public void done(IJobChangeEvent ijobchangeevent)
|
|
{
|
|
TCComponentDataset tccomponentdataset = m_datasetContext.getDatasetComponent();
|
|
boolean flag = false;
|
|
try
|
|
{
|
|
flag = tccomponentdataset.isValidUid();
|
|
}
|
|
catch(Exception exception)
|
|
{
|
|
m_session.getAEShellManager().removeShell(this);
|
|
if(GraphicsEnvironment.isHeadless())
|
|
logger.error(exception.getLocalizedMessage(), exception);
|
|
else
|
|
MessageBox.post(exception);
|
|
return;
|
|
}
|
|
if(!flag)
|
|
{
|
|
logger.error("Dataset is no longer a valid object. It might have been purged.");
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("Dataset in AEShell [")).append(this).append("] is no longer a valid object").toString());
|
|
return;
|
|
}
|
|
setAppShellActiveVerdict(false);
|
|
Shell shell = (Shell)ijobchangeevent.getJob();
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("exitCode = ")).append(Integer.toString(shell.getExitValue())).toString());
|
|
try
|
|
{
|
|
if(shell.getExitValue() == 9008)
|
|
{
|
|
if(m_checkedOutState == 1)
|
|
try
|
|
{
|
|
m_session.getReservationService().cancelReservation(tccomponentdataset);
|
|
}
|
|
catch(TCException _ex) { }
|
|
removeFiles();
|
|
deleteAliasXMLFile();
|
|
m_session.getAEShellManager().removeShell(this);
|
|
throw new TCException(Registry.getRegistry(com/teamcenter/rac/kernel/AEShell).getString("toolNotFound"));
|
|
}
|
|
String s = tccomponentdataset.getType();
|
|
Registry registry = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
|
|
String s1 = null;
|
|
TCComponent tccomponent = tccomponentdataset.getDefaultTool();
|
|
if(tccomponent != null)
|
|
s1 = tccomponent.toString();
|
|
String s2 = null;
|
|
String s4 = askSelectedTool().toString();
|
|
if(s4.equals(s1))
|
|
{
|
|
String s5 = getApplRegKey(s, m_session);
|
|
if(s5 != null)
|
|
s2 = (new StringBuilder(String.valueOf(s5))).append(".ACTION_OBJECT").toString();
|
|
}
|
|
if(s2 == null)
|
|
s2 = (new StringBuilder(String.valueOf(s))).append(".ACTION_OBJECT").toString();
|
|
String as[] = registry.getStringArray(s2, null, null);
|
|
if(as == null)
|
|
{
|
|
String s3 = (new StringBuilder(String.valueOf(tccomponentdataset.getTCClass().toString()))).append(".ACTION_OBJECT").toString();
|
|
as = registry.getStringArray(s3, null, null);
|
|
}
|
|
if(as != null)
|
|
{
|
|
boolean flag1 = false;
|
|
int i = as.length;
|
|
for(int j = 0; j < i; j++)
|
|
{
|
|
InterfaceDatasetAction interfacedatasetaction = (InterfaceDatasetAction)Instancer.newInstance(as[j]);
|
|
if(interfacedatasetaction != null)
|
|
{
|
|
boolean flag2 = interfacedatasetaction.postProcess(tccomponentdataset, m_workingDirName, shell.getExitValue());
|
|
if(!flag2)
|
|
j = i;
|
|
}
|
|
interfacedatasetaction = null;
|
|
}
|
|
|
|
}
|
|
TCComponentDatasetDefinition tccomponentdatasetdefinition = tccomponentdataset.getDatasetDefinitionComponent();
|
|
TCComponent tccomponent1 = askSelectedTool();
|
|
TCComponent tccomponent2 = tccomponentdatasetdefinition.getPostAction(tccomponent1, m_selectedAction);
|
|
String s6 = null;
|
|
if(tccomponent2 != null)
|
|
s6 = tccomponentdatasetdefinition.getToolMimeType(tccomponent2);
|
|
if(tccomponent2 != null && s6 != null && s6.length() > 0)
|
|
{
|
|
String as1[] = tccomponentdatasetdefinition.getPostActionParameters(tccomponent1, m_selectedAction);
|
|
String as2[] = tccomponentdataset.buildInputParams(askSelectedFileName(), as1, askSelectedNamedRef(), m_selectedAction);
|
|
AIFShell aifshell = new AIFShell("");
|
|
if(as2 != null && as2.length > 0)
|
|
aifshell.setCommand(as2);
|
|
aifshell.setMimeType(s6);
|
|
aifshell.addJobChangeListener(new PostActionShell(this));
|
|
if(m_selectedAction == 3 || m_selectedAction == 4)
|
|
aifshell.setAction("O");
|
|
else
|
|
if(m_selectedAction == 2 || m_selectedAction == 9)
|
|
aifshell.setAction("P");
|
|
logger.debug("starting PostActionShell");
|
|
aifshell.start();
|
|
} else
|
|
{
|
|
cleanupAESession();
|
|
}
|
|
}
|
|
catch(TCException tcexception)
|
|
{
|
|
if(m_checkedOutState == 1)
|
|
try
|
|
{
|
|
m_session.getReservationService().cancelReservation(tccomponentdataset);
|
|
}
|
|
catch(TCException _ex) { }
|
|
removeFiles();
|
|
deleteAliasXMLFile();
|
|
m_session.getAEShellManager().removeShell(this);
|
|
MessageBox.post(tcexception);
|
|
}
|
|
catch(Exception exception1)
|
|
{
|
|
MessageBox.post(exception1);
|
|
}
|
|
}
|
|
|
|
void cleanupAESession()
|
|
throws Exception
|
|
{
|
|
final File exportedFiles[];
|
|
TCComponentDataset tccomponentdataset;
|
|
ArrayList arraylist;
|
|
exportedFiles = m_datasetContext.getFiles();
|
|
String as[] = m_datasetContext.getRemoteFileNames();
|
|
String as1[] = m_datasetContext.getFileTypes();
|
|
String as2[] = m_datasetContext.namedRefrences();
|
|
int i = m_datasetContext.performedAction();
|
|
m_fileSaved = false;
|
|
tccomponentdataset = m_datasetContext.getDatasetComponent();
|
|
if(i != 3 && i != 4)
|
|
break MISSING_BLOCK_LABEL_1018;
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("actionCode = ")).append(Integer.toString(i)).toString());
|
|
tccomponentdataset.setUploadingFlag(true);
|
|
arraylist = new ArrayList();
|
|
ArrayList arraylist1 = new ArrayList();
|
|
ArrayList arraylist2 = new ArrayList();
|
|
ArrayList arraylist3 = new ArrayList();
|
|
if(exportedFiles == null)
|
|
break MISSING_BLOCK_LABEL_849;
|
|
for(int k = 0; k < exportedFiles.length; k++)
|
|
{
|
|
File file = exportedFiles[k];
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("Processing Exported File= ")).append(file.toString()).toString());
|
|
if(file.exists())
|
|
{
|
|
long l = file.lastModified();
|
|
if(l != m_lastModifiedDate[k])
|
|
{
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("Modified File= ")).append(file.toString()).toString());
|
|
arraylist.add(file);
|
|
arraylist1.add(as[k]);
|
|
arraylist2.add(as1[k]);
|
|
arraylist3.add(as2[k]);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(arraylist.isEmpty())
|
|
break MISSING_BLOCK_LABEL_722;
|
|
File afile[];
|
|
String as4[];
|
|
String as5[];
|
|
String as6[];
|
|
try
|
|
{
|
|
boolean flag = m_session.getReservationService().isReserved(tccomponentdataset);
|
|
if(!flag)
|
|
{
|
|
Registry registry = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
|
|
StringBuilder stringbuilder = new StringBuilder();
|
|
stringbuilder.append(registry.getString("notReserved.MSG1"));
|
|
stringbuilder.append('\n');
|
|
stringbuilder.append(m_workingDirName);
|
|
if(GraphicsEnvironment.isHeadless())
|
|
logger.error(stringbuilder.toString());
|
|
else
|
|
MessageBox.post(stringbuilder.toString(), registry.getString("notReserved.TITLE"), 1);
|
|
tccomponentdataset.setUploadingFlag(false);
|
|
m_session.getAEShellManager().removeShell(this);
|
|
return;
|
|
}
|
|
}
|
|
catch(TCException tcexception)
|
|
{
|
|
tccomponentdataset.setUploadingFlag(false);
|
|
m_session.getAEShellManager().removeShell(this);
|
|
if(m_checkedOutState == 1)
|
|
try
|
|
{
|
|
m_session.getReservationService().cancelReservation(tccomponentdataset);
|
|
}
|
|
catch(TCException _ex) { }
|
|
Registry registry1 = Registry.getRegistry(com/teamcenter/rac/kernel/AEShell);
|
|
StringBuilder stringbuilder1 = new StringBuilder();
|
|
stringbuilder1.append(registry1.getString("unableUploadFile.MSG1"));
|
|
stringbuilder1.append(tcexception.getLocalizedMessage());
|
|
stringbuilder1.append('\n');
|
|
stringbuilder1.append('\n');
|
|
stringbuilder1.append(m_workingDirName);
|
|
stringbuilder1.append('\n');
|
|
stringbuilder1.append(registry1.getString("unableUploadFile.MSG2"));
|
|
if(GraphicsEnvironment.isHeadless())
|
|
logger.error(stringbuilder1.toString(), tcexception);
|
|
else
|
|
MessageBox.post(tcexception.getError(), stringbuilder1, registry1.getString("unableUploadFile.TITLE"), 1);
|
|
return;
|
|
}
|
|
afile = (File[])arraylist.toArray(new File[arraylist.size()]);
|
|
as4 = (String[])arraylist1.toArray(new String[arraylist1.size()]);
|
|
as5 = (String[])arraylist2.toArray(new String[arraylist2.size()]);
|
|
as6 = (String[])arraylist3.toArray(new String[arraylist3.size()]);
|
|
tccomponentdataset.validateFiles(tccomponentdataset, afile);
|
|
tccomponentdataset.replaceFiles(afile, as4, as5, as6);
|
|
m_fileSaved = true;
|
|
if(m_removeFilesAtComplete)
|
|
{
|
|
for(short word0 = 0; word0 < exportedFiles.length; word0++)
|
|
{
|
|
File file1 = exportedFiles[word0];
|
|
boolean flag1 = file1.delete();
|
|
if(!flag1)
|
|
logger.error((new StringBuilder("Exported File [")).append(file1.toString()).append("] Delete Failed").toString());
|
|
else
|
|
if(logger.isDebugEnabled())
|
|
logger.debug((new StringBuilder("Exported File [")).append(file1.toString()).append("] Removed").toString());
|
|
}
|
|
|
|
}
|
|
deleteAliasXMLFile();
|
|
if(!tccomponentdataset.isValidUid())
|
|
tccomponentdataset = m_version0;
|
|
try
|
|
{
|
|
processNewFiles();
|
|
if(tccomponentdataset.isCheckedOut())
|
|
{
|
|
if(!arraylist.isEmpty())
|
|
{
|
|
if(m_checkedOutState == 1)
|
|
m_session.getReservationService().unreserve(tccomponentdataset);
|
|
} else
|
|
{
|
|
if(!tccomponentdataset.isValidUid())
|
|
tccomponentdataset = m_version0;
|
|
if(m_checkedOutState == 1 && !m_readOnly)
|
|
m_session.getReservationService().cancelReservation(tccomponentdataset);
|
|
}
|
|
if(m_checkedOutState == 1)
|
|
tccomponentdataset.getAllVersions();
|
|
}
|
|
}
|
|
catch(TCException tcexception1)
|
|
{
|
|
if(GraphicsEnvironment.isHeadless())
|
|
logger.error(tcexception1.getLocalizedMessage(), tcexception1);
|
|
else
|
|
MessageBox.post(tcexception1);
|
|
}
|
|
catch(IOException ioexception)
|
|
{
|
|
logger.error(ioexception.getLocalizedMessage(), ioexception);
|
|
}
|
|
tccomponentdataset.setUploadingFlag(false);
|
|
final File workingDir = new File(m_workingDirName);
|
|
if(m_removeFilesAtComplete)
|
|
{
|
|
if(m_checkedOutState == 0 && (m_selectedAction == 2 || m_selectedAction == 9) && exportedFiles != null)
|
|
m_session.addSessionLogoutListener(new InterfaceAIFSessionLogoutListener() {
|
|
|
|
public void sessionLogout(AbstractAIFSession abstractaifsession)
|
|
{
|
|
for(short word1 = 0; word1 < exportedFiles.length; word1++)
|
|
{
|
|
File file2 = exportedFiles[word1];
|
|
if(!file2.delete())
|
|
AEShell.logger.info((new StringBuilder("Unable to delete file: ")).append(file2.getAbsolutePath()).toString());
|
|
}
|
|
|
|
String as7[] = workingDir.list();
|
|
if((as7 == null || as7.length == 0) && !workingDir.delete())
|
|
AEShell.logger.info((new StringBuilder("Unable to delete directory")).append(workingDir.getAbsolutePath()).toString());
|
|
}
|
|
|
|
final AEShell this$0;
|
|
private final File val$exportedFiles[];
|
|
private final File val$workingDir;
|
|
|
|
|
|
{
|
|
this$0 = AEShell.this;
|
|
exportedFiles = afile;
|
|
workingDir = file;
|
|
super();
|
|
}
|
|
}
|
|
);
|
|
String as3[] = workingDir.list();
|
|
int j = as3.length;
|
|
if(j == 0 && !m_userDefinedDir && !workingDir.delete())
|
|
logger.info((new StringBuilder("Unable to delete directory")).append(workingDir.getAbsolutePath()).toString());
|
|
deleteAliasXMLFile();
|
|
}
|
|
m_session.getAEShellManager().removeShell(this);
|
|
if(m_fileSaved && m_selectedAction == 4)
|
|
try
|
|
{
|
|
m_selectedDataset.setDefaultTool(m_selectedTool);
|
|
}
|
|
catch(Exception _ex) { }
|
|
tccomponentdataset.resetInIcContext();
|
|
return;
|
|
}
|
|
|
|
public void setSelectedFileName(String s)
|
|
{
|
|
m_selectedFileName = s;
|
|
}
|
|
|
|
void setSelectedNamedRef(String s)
|
|
{
|
|
m_selectedNamedRef = s;
|
|
}
|
|
|
|
public void setSelectedDataset(TCComponentDataset tccomponentdataset)
|
|
{
|
|
m_selectedDataset = tccomponentdataset;
|
|
}
|
|
|
|
void setExportedFiles(File afile[])
|
|
{
|
|
m_exportedFiles = afile;
|
|
}
|
|
|
|
void setSelectedMimeType(String s)
|
|
{
|
|
m_selectedMimeType = s;
|
|
}
|
|
|
|
public void setSelectedTool(TCComponent tccomponent)
|
|
{
|
|
m_selectedTool = tccomponent;
|
|
}
|
|
|
|
void setSearchBy(String s)
|
|
{
|
|
m_searchBy = s;
|
|
}
|
|
|
|
void setRev0DS(TCComponentDataset tccomponentdataset)
|
|
{
|
|
m_version0 = tccomponentdataset;
|
|
}
|
|
|
|
void setReserveOption(int i)
|
|
{
|
|
m_checkedOutState = i;
|
|
}
|
|
|
|
void setNewFileCreatedTime(File file)
|
|
{
|
|
m_newFileCreatedTime = file.lastModified();
|
|
}
|
|
|
|
String askSelectedFileName()
|
|
{
|
|
return m_selectedFileName;
|
|
}
|
|
|
|
String askSelectedNamedRef()
|
|
{
|
|
return m_selectedNamedRef;
|
|
}
|
|
|
|
TCComponentDataset askSelectedDataset()
|
|
{
|
|
return m_selectedDataset;
|
|
}
|
|
|
|
File[] askExportedFiles()
|
|
{
|
|
return m_exportedFiles;
|
|
}
|
|
|
|
String askSelectedMimeType()
|
|
{
|
|
return m_selectedMimeType;
|
|
}
|
|
|
|
TCComponent askSelectedTool()
|
|
{
|
|
return m_selectedTool;
|
|
}
|
|
|
|
String askSearchBy()
|
|
{
|
|
return m_searchBy;
|
|
}
|
|
|
|
protected void setAppShellActiveVerdict(boolean flag)
|
|
{
|
|
synchronized(this)
|
|
{
|
|
if(flag)
|
|
{
|
|
if(m_statefulnessReg == 0)
|
|
m_statefulnessReg = TcStatefulnessUtil.registerState(m_session, "Edit");
|
|
} else
|
|
if(m_statefulnessReg > 0)
|
|
{
|
|
TcStatefulnessUtil.unregister(m_session, m_statefulnessReg);
|
|
m_statefulnessReg = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
private String getApplRegKey(String s, TCSession tcsession)
|
|
{
|
|
TCPreferenceService tcpreferenceservice = tcsession.getPreferenceService();
|
|
String as[] = tcpreferenceservice.getStringValues("TC_encapsulation_application_key");
|
|
String as1[] = tcpreferenceservice.getStringValues("CAE_analysis_tools");
|
|
if(as != null && as1 != null)
|
|
{
|
|
String as2[];
|
|
int j = (as2 = as).length;
|
|
for(int i = 0; i < j; i++)
|
|
{
|
|
String s1 = as2[i];
|
|
if(s1.equals("CAE"))
|
|
{
|
|
String as3[];
|
|
int l = (as3 = as1).length;
|
|
for(int k = 0; k < l; k++)
|
|
{
|
|
String s2 = as3[k];
|
|
if(s.equals(s2))
|
|
return "CAE";
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public String toString()
|
|
{
|
|
StringBuilder stringbuilder = new StringBuilder(super.toString());
|
|
if(logger.isDebugEnabled())
|
|
try
|
|
{
|
|
stringbuilder.delete(0, stringbuilder.length());
|
|
stringbuilder.append(getClass().getName()).append("\n DatasetContext [").append(m_datasetContext != null ? m_datasetContext.toString() : "").append("]\n");
|
|
stringbuilder.append(" userDefinedDir [").append(m_userDefinedDir).append("]\n");
|
|
stringbuilder.append(" workingDirName [").append(m_workingDirName).append("]\n");
|
|
stringbuilder.append(" selectedAction ").append(TCComponentDataset.getAction(m_selectedAction)).append("\n");
|
|
if(m_selectedDataset == null)
|
|
stringbuilder.append(" TCComponentDataset [").append(m_selectedDataset).append("]\n");
|
|
else
|
|
stringbuilder.append(" TCComponentDataset [").append(m_selectedDataset).append("] uid ").append(m_selectedDataset.getUid()).append(", type [").append(m_selectedDataset.getType()).append("]\n");
|
|
if(m_version0 == null)
|
|
stringbuilder.append(" version0Dataset [").append(m_version0).append("]\n");
|
|
else
|
|
stringbuilder.append(" version0Dataset [").append(m_version0).append("] uid ").append(m_version0.getUid()).append(", type [").append(m_version0.getType()).append("]\n");
|
|
stringbuilder.append(" TCComponentDataset [").append(m_selectedDataset).append("]\n");
|
|
stringbuilder.append(" version0Dataset [").append(m_version0).append("]\n");
|
|
stringbuilder.append(" Tool [").append(m_selectedTool).append("]\n");
|
|
stringbuilder.append(" selectedFileName [").append(m_selectedFileName).append("]\n");
|
|
stringbuilder.append(" selectedNamedRef [").append(m_selectedNamedRef).append("]\n");
|
|
stringbuilder.append(" selectedMimeType [").append(m_selectedMimeType).append("]\n");
|
|
stringbuilder.append(" searchBy [").append(m_searchBy).append("]\n");
|
|
int i = m_exportedFiles != null ? m_exportedFiles.length : 0;
|
|
stringbuilder.append(i).append(" exported files:\n");
|
|
for(int j = 0; j < i; j++)
|
|
stringbuilder.append(" [").append(m_exportedFiles[j].toString()).append("]\n");
|
|
|
|
stringbuilder.append(" checkedOutState ").append(m_checkedOutState).append("]\n");
|
|
stringbuilder.append(" fileSaved [").append(m_fileSaved).append("]\n");
|
|
stringbuilder.append(" removeFilesAtComplete [").append(m_removeFilesAtComplete).append("]\n");
|
|
}
|
|
catch(Exception exception)
|
|
{
|
|
logger.error(exception.getLocalizedMessage(), exception);
|
|
}
|
|
return stringbuilder.toString();
|
|
}
|
|
|
|
private void deleteAliasXMLFile()
|
|
{
|
|
try
|
|
{
|
|
CheckTcAEGMOLicense checktcaegmolicense = new CheckTcAEGMOLicense();
|
|
if(checktcaegmolicense.checkGMOLicense())
|
|
{
|
|
String s = AliasOpenAction.ouputXMLFilePath;
|
|
if(s != null)
|
|
{
|
|
File file = new File(s);
|
|
if(file.exists() && !file.delete())
|
|
logger.info((new StringBuilder("Unable to delete file: ")).append(file.getAbsolutePath()).toString());
|
|
}
|
|
}
|
|
}
|
|
catch(Exception exception)
|
|
{
|
|
logger.error(exception.getLocalizedMessage(), exception);
|
|
}
|
|
}
|
|
|
|
public void setReadOnly(boolean flag)
|
|
{
|
|
m_readOnly = flag;
|
|
}
|
|
|
|
private static final Logger logger = Logger.getLogger(com/teamcenter/rac/kernel/AEShell);
|
|
private static final int AE_tool_not_found = 9008;
|
|
private static final String ACTION_OBJECT_SUFFIX = ".ACTION_OBJECT";
|
|
private final TCComponentDatasetContext m_datasetContext;
|
|
private long m_lastModifiedDate[];
|
|
private long m_newFileCreatedTime;
|
|
private final boolean m_userDefinedDir;
|
|
private final String m_workingDirName;
|
|
private final int m_selectedAction;
|
|
private TCComponentDataset m_selectedDataset;
|
|
private TCComponentDataset m_version0;
|
|
private TCComponent m_selectedTool;
|
|
private String m_selectedFileName;
|
|
private String m_selectedNamedRef;
|
|
private String m_selectedMimeType;
|
|
private String m_searchBy;
|
|
private File m_exportedFiles[];
|
|
private int m_checkedOutState;
|
|
private boolean m_fileSaved;
|
|
private int m_statefulnessReg;
|
|
private final TCSession m_session;
|
|
private boolean m_readOnly;
|
|
private boolean m_removeFilesAtComplete;
|
|
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
DECOMPILATION REPORT
|
|
|
|
Decompiled from: F:\Teamcenter10.1.4Env\portal\plugins\com.teamcenter.rac.kernel_10000.1.0.jar
|
|
Total time: 132 ms
|
|
Jad reported messages/errors:
|
|
Couldn't resolve all exception handlers in method cleanupAESession
|
|
Overlapped try statements detected. Not all exception handlers will be resolved in the method setAppShellActiveVerdict
|
|
Exit status: 0
|
|
Caught exceptions:
|
|
*/ |