FR [ 1720995 ] Add PO.saveEx() and PO.deleteEx() methods
This commit is contained in:
parent
6391995ae6
commit
785797db9b
|
@ -0,0 +1,84 @@
|
|||
/******************************************************************************
|
||||
* Product: Adempiere ERP & CRM Smart Business Solution *
|
||||
* Copyright (C) 2008 SC ARHIPAC SERVICE SRL. All Rights Reserved. *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms version 2 of the GNU General Public License as published *
|
||||
* by the Free Software Foundation. This program is distributed in the hope *
|
||||
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU General Public License for more details. *
|
||||
* You should have received a copy of the GNU General Public License along *
|
||||
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||
*****************************************************************************/
|
||||
package org.adempiere.exceptions;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.compiere.util.CLogger;
|
||||
import org.compiere.util.Env;
|
||||
import org.compiere.util.Msg;
|
||||
|
||||
/**
|
||||
* Any exception that occurs inside the Adempiere core
|
||||
* @author Teo Sarca, SC ARHIPAC SERVICE SRL
|
||||
*/
|
||||
public class AdempiereException extends RuntimeException {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* Default Constructor (saved logger error will be used as message)
|
||||
*/
|
||||
public AdempiereException() {
|
||||
this(getMessageFromLogger());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param message
|
||||
*/
|
||||
public AdempiereException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param cause
|
||||
*/
|
||||
public AdempiereException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param message
|
||||
* @param cause
|
||||
*/
|
||||
public AdempiereException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedMessage() {
|
||||
String msg = super.getLocalizedMessage();
|
||||
msg = Msg.parseTranslation(getCtx(), msg);
|
||||
return msg;
|
||||
}
|
||||
|
||||
protected Properties getCtx() {
|
||||
return Env.getCtx();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return error message from logger
|
||||
* @see org.compiere.util.CLogger#retrieveError()
|
||||
*/
|
||||
private static String getMessageFromLogger() {
|
||||
org.compiere.util.ValueNamePair err = CLogger.retrieveError();
|
||||
String msg = null;
|
||||
if (err != null)
|
||||
msg = err.getName();
|
||||
if (msg == null)
|
||||
msg = "UnknownError";
|
||||
return msg;
|
||||
}
|
||||
}
|
|
@ -39,6 +39,7 @@ import javax.xml.transform.TransformerFactory;
|
|||
import javax.xml.transform.dom.DOMSource;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
|
||||
import org.adempiere.exceptions.AdempiereException;
|
||||
import org.compiere.Adempiere;
|
||||
import org.compiere.acct.Doc;
|
||||
import org.compiere.util.CLogMgt;
|
||||
|
@ -53,6 +54,7 @@ import org.compiere.util.Msg;
|
|||
import org.compiere.util.SecureEngine;
|
||||
import org.compiere.util.Trace;
|
||||
import org.compiere.util.Trx;
|
||||
import org.compiere.util.ValueNamePair;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
|
@ -63,7 +65,10 @@ import org.w3c.dom.Element;
|
|||
* @author Jorg Janke
|
||||
* @version $Id: PO.java,v 1.12 2006/08/09 16:38:47 jjanke Exp $
|
||||
*
|
||||
* @author Teo Sarca - FR [ 1675490 ], BF [ 1704828 ]
|
||||
* @author Teo Sarca, SC ARHIPAC SERVICE SRL
|
||||
* <li>FR [ 1675490 ] ModelValidator on modelChange after events
|
||||
* <li>BF [ 1704828 ] PO.is_Changed() and PO.is_ValueChanged are not consistent
|
||||
* <li>FR [ 1720995 ] Add PO.saveEx() and PO.deleteEx() methods
|
||||
*/
|
||||
public abstract class PO
|
||||
implements Serializable, Comparator, Evaluatee
|
||||
|
@ -1948,6 +1953,24 @@ public abstract class PO
|
|||
}
|
||||
} // save
|
||||
|
||||
/**
|
||||
* Update Value or create new record.
|
||||
* @throws AdempiereException
|
||||
* @see #save()
|
||||
*/
|
||||
public void saveEx() throws AdempiereException
|
||||
{
|
||||
if (!save()) {
|
||||
String msg = null;
|
||||
ValueNamePair err = CLogger.retrieveError();
|
||||
if (err != null)
|
||||
msg = err.getName();
|
||||
if (msg == null)
|
||||
msg = "SaveError";
|
||||
throw new AdempiereException(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finish Save Process
|
||||
* @param newRecord new
|
||||
|
@ -2044,6 +2067,18 @@ public abstract class PO
|
|||
return save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update Value or create new record.
|
||||
* @param trxName transaction
|
||||
* @throws AdempiereException
|
||||
* @see #saveEx(String)
|
||||
*/
|
||||
public void saveEx(String trxName) throws AdempiereException
|
||||
{
|
||||
set_TrxName(trxName);
|
||||
saveEx();
|
||||
}
|
||||
|
||||
/**
|
||||
* Is there a Change to be saved?
|
||||
* @return true if record changed
|
||||
|
@ -2794,6 +2829,25 @@ public abstract class PO
|
|||
return success;
|
||||
} // delete
|
||||
|
||||
/**
|
||||
* Delete Current Record
|
||||
* @param force delete also processed records
|
||||
* @throws AdempiereException
|
||||
* @see #delete(boolean)
|
||||
*/
|
||||
public void deleteEx(boolean force) throws AdempiereException
|
||||
{
|
||||
if (!delete(force)) {
|
||||
String msg = null;
|
||||
ValueNamePair err = CLogger.retrieveError();
|
||||
if (err != null)
|
||||
msg = err.getName();
|
||||
if (msg == null)
|
||||
msg = "DeleteError";
|
||||
throw new AdempiereException(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Current Record
|
||||
* @param force delete also processed records
|
||||
|
@ -2806,6 +2860,19 @@ public abstract class PO
|
|||
return delete (force);
|
||||
} // delete
|
||||
|
||||
/**
|
||||
* Delete Current Record
|
||||
* @param force delete also processed records
|
||||
* @param trxName transaction
|
||||
* @throws AdempiereException
|
||||
* @see {@link #deleteEx(boolean)}
|
||||
*/
|
||||
public void deleteEx(boolean force, String trxName) throws AdempiereException
|
||||
{
|
||||
set_TrxName(trxName);
|
||||
deleteEx(force);
|
||||
}
|
||||
|
||||
/**
|
||||
* Executed before Delete operation.
|
||||
* @return true if record can be deleted
|
||||
|
|
Loading…
Reference in New Issue