Package org.ametys.core.util.mail
Class SendMailHelper
- java.lang.Object
- 
- org.apache.avalon.framework.logger.AbstractLogEnabled
- 
- org.ametys.core.util.mail.SendMailHelper
 
 
- 
- All Implemented Interfaces:
- Disposable,- LogEnabled
 
 public final class SendMailHelper extends AbstractLogEnabled implements Disposable Helper for sending mail
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description private static classSendMailHelper.CssRuleprivate static classSendMailHelper.CssSpecificityprivate static classSendMailHelper.MailSenderprivate static classSendMailHelper.MailSenderThreadFactory
 - 
Field SummaryFields Modifier and Type Field Description protected static Pattern__CSS_SPECIFICITY_ATTR_PATTERNAttribute selectors pattern for CSS specificity processingprotected static Pattern__CSS_SPECIFICITY_CLASS_PATTERNClass selectors pattern for CSS specificity processingprotected static Pattern__CSS_SPECIFICITY_ELEMENT_PATTERNElement selectors pattern for CSS specificity processingprotected static Pattern__CSS_SPECIFICITY_ID_PATTERNID selectors pattern for CSS specificity processingprotected static Pattern__CSS_SPECIFICITY_PSEUDO_CLASS_NOT_PATTERNSpecific :not pseudo-class selectors pattern for CSS specificity processingprotected static Pattern__CSS_SPECIFICITY_PSEUDO_CLASS_PATTERNPseudo-class selectors pattern for CSS specificity processingprotected static Pattern__CSS_SPECIFICITY_PSEUDO_CLASS_WITH_BRACKETS_PATTERNPseudo-class (with bracket) selectors pattern for CSS specificity processingprotected static Pattern__CSS_SPECIFICITY_PSEUDO_ELEMENT_PATTERNPseudo-element selectors pattern for CSS specificity processingprotected static Pattern__CSS_SPECIFICITY_UNIVERSAL_AND_SEPARATOR_PATTERNUniversal and separator characters pattern for CSS specificity processingprivate static ExecutorService__SINGLE_THREAD_EXECUTORprotected static org.slf4j.Logger_LOGGERLoggerstatic PatternEMAIL_VALIDATIONRegexp to validate an emailstatic StringEMAIL_VALIDATION_REGEXPRegexp to validate an email
 - 
Constructor SummaryConstructors Modifier Constructor Description privateSendMailHelper()
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static String_removeComments(String styleRules)private static StringconcatenateProperties(String oldProp, String newProp)voiddispose()static StringinlineCSS(String html)This method inline css in <style> tags directly in the appropriates tags.static voidsendMail(String subject, String htmlBody, String textBody, String recipient, String sender)Sends mail without authentication or attachments.static voidsendMail(String subject, String htmlBody, String textBody, String recipient, String sender, boolean async)Sends mail without authentication or attachments.static voidsendMail(String subject, String htmlBody, String textBody, String recipient, String sender, String host, long port, String securityProtocol, boolean async)Sends mail without authentication or attachments.static voidsendMail(String subject, String htmlBody, String textBody, String recipient, String sender, String host, long port, String securityProtocol, String user, String password, boolean async)Sends mail with authentication, without attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, String recipient, String sender)Sends mail without authentication, with attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, String recipient, String sender, List<String> cc, List<String> bcc, boolean async)Sends mail without authentication, with attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, String recipient, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, boolean async)Sends mail without authentication, with attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, String recipient, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, String host, long port, String securityProtocol, boolean async)Sends mail without authentication, with attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, String recipient, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, String host, long port, String securityProtocol, String user, String password, boolean async)Sends mail with authentication and attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender)Sends mail without authentication, with attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender, List<String> cc, List<String> bcc, boolean async)Sends mail without authentication, with attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, boolean async)Sends mail without authentication, with attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, String host, long port, String securityProtocol, boolean async)Sends mail without authentication, with attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, String host, long port, String securityProtocol, String user, String password, boolean async)Sends mail with authentication and attachments.static voidsendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, String host, long port, String securityProtocol, String user, String password, boolean async, boolean singleEmail)Sends mail with authentication and attachments.static voidsendMail(String subject, String htmlBody, String textBody, List<String> recipients, String sender)Sends mail without authentication or attachments.static voidsendMail(String subject, String htmlBody, String textBody, List<String> recipients, String sender, boolean async)Sends mail without authentication or attachments.static voidsendMail(String subject, String htmlBody, String textBody, List<String> recipients, String sender, String host, long port, String securityProtocol, boolean async)Sends mail without authentication or attachments.static voidsendMail(String subject, String htmlBody, String textBody, List<String> recipients, String sender, String host, long port, String securityProtocol, String user, String password, boolean async)Sends mail with authentication, without attachments.- 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabledenableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
- 
 
- 
- 
- 
Field Detail- 
EMAIL_VALIDATION_REGEXPpublic static final String EMAIL_VALIDATION_REGEXP Regexp to validate an email- See Also:
- Constant Field Values
 
 - 
EMAIL_VALIDATIONpublic static final Pattern EMAIL_VALIDATION Regexp to validate an email
 - 
_LOGGERprotected static final org.slf4j.Logger _LOGGER Logger
 - 
__CSS_SPECIFICITY_ATTR_PATTERNprotected static final Pattern __CSS_SPECIFICITY_ATTR_PATTERN Attribute selectors pattern for CSS specificity processing
 - 
__CSS_SPECIFICITY_ID_PATTERNprotected static final Pattern __CSS_SPECIFICITY_ID_PATTERN ID selectors pattern for CSS specificity processing
 - 
__CSS_SPECIFICITY_CLASS_PATTERNprotected static final Pattern __CSS_SPECIFICITY_CLASS_PATTERN Class selectors pattern for CSS specificity processing
 - 
__CSS_SPECIFICITY_PSEUDO_ELEMENT_PATTERNprotected static final Pattern __CSS_SPECIFICITY_PSEUDO_ELEMENT_PATTERN Pseudo-element selectors pattern for CSS specificity processing
 - 
__CSS_SPECIFICITY_PSEUDO_CLASS_WITH_BRACKETS_PATTERNprotected static final Pattern __CSS_SPECIFICITY_PSEUDO_CLASS_WITH_BRACKETS_PATTERN Pseudo-class (with bracket) selectors pattern for CSS specificity processing
 - 
__CSS_SPECIFICITY_PSEUDO_CLASS_PATTERNprotected static final Pattern __CSS_SPECIFICITY_PSEUDO_CLASS_PATTERN Pseudo-class selectors pattern for CSS specificity processing
 - 
__CSS_SPECIFICITY_ELEMENT_PATTERNprotected static final Pattern __CSS_SPECIFICITY_ELEMENT_PATTERN Element selectors pattern for CSS specificity processing
 - 
__CSS_SPECIFICITY_PSEUDO_CLASS_NOT_PATTERNprotected static final Pattern __CSS_SPECIFICITY_PSEUDO_CLASS_NOT_PATTERN Specific :not pseudo-class selectors pattern for CSS specificity processing
 - 
__CSS_SPECIFICITY_UNIVERSAL_AND_SEPARATOR_PATTERNprotected static final Pattern __CSS_SPECIFICITY_UNIVERSAL_AND_SEPARATOR_PATTERN Universal and separator characters pattern for CSS specificity processing
 - 
__SINGLE_THREAD_EXECUTORprivate static final ExecutorService __SINGLE_THREAD_EXECUTOR 
 
- 
 - 
Constructor Detail- 
SendMailHelperprivate SendMailHelper() 
 
- 
 - 
Method Detail- 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, String recipient, String sender) throws javax.mail.MessagingException Sends mail without authentication or attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- recipient- The recipient address
- sender- The sender address
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, List<String> recipients, String sender) throws javax.mail.MessagingException Sends mail without authentication or attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- recipients- The recipients addresses
- sender- The sender address
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, String recipient, String sender, boolean async) throws javax.mail.MessagingException Sends mail without authentication or attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- recipient- The recipient address
- sender- The sender address
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, List<String> recipients, String sender, boolean async) throws javax.mail.MessagingException Sends mail without authentication or attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- recipients- The recipients addresses
- sender- The sender address
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, String recipient, String sender, String host, long port, String securityProtocol, boolean async) throws javax.mail.MessagingException Sends mail without authentication or attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- recipient- The recipient address
- sender- The sender address
- host- The server mail host
- port- The server mail port
- securityProtocol- The server mail security protocol
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, List<String> recipients, String sender, String host, long port, String securityProtocol, boolean async) throws javax.mail.MessagingException Sends mail without authentication or attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- recipients- The recipients addresses
- sender- The sender address
- host- The server mail host
- port- The server mail port
- securityProtocol- The server mail security protocol
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, String recipient, String sender, String host, long port, String securityProtocol, String user, String password, boolean async) throws javax.mail.MessagingException Sends mail with authentication, without attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- recipient- The recipient address
- sender- The sender address
- host- The server mail host
- port- The server port
- securityProtocol- The server mail security protocol
- user- The user name
- password- The user password
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, List<String> recipients, String sender, String host, long port, String securityProtocol, String user, String password, boolean async) throws javax.mail.MessagingException Sends mail with authentication, without attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- recipients- The recipients addresses
- sender- The sender address
- host- The server mail host
- port- The server port
- securityProtocol- The server mail security protocol
- user- The user name
- password- The user password
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, String recipient, String sender) throws javax.mail.MessagingException, IOException Sends mail without authentication, with attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipient- The recipient address
- sender- The sender address
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender) throws javax.mail.MessagingException, IOException Sends mail without authentication, with attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipients- The recipients addresses
- sender- The sender address
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, String recipient, String sender, List<String> cc, List<String> bcc, boolean async) throws javax.mail.MessagingException, IOException Sends mail without authentication, with attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipient- The recipient address
- sender- The sender address
- cc- Carbon copy address list. Can be null.
- bcc- Blind carbon copy address list. Can be null.
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender, List<String> cc, List<String> bcc, boolean async) throws javax.mail.MessagingException, IOException Sends mail without authentication, with attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipients- The recipients addresses
- sender- The sender address
- cc- Carbon copy address list. Can be null.
- bcc- Blind carbon copy address list. Can be null.
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, String recipient, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, boolean async) throws javax.mail.MessagingException, IOException Sends mail without authentication, with attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipient- The recipient address
- sender- The sender address
- cc- Carbon copy address list. Can be null.
- bcc- Blind carbon copy address list. Can be null.
- deliveryReceipt- true to request that the receiving mail server send a notification when the mail is received.
- readReceipt- true to request that the receiving mail client send a notification when the person opens the mail.
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, boolean async) throws javax.mail.MessagingException, IOException Sends mail without authentication, with attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipients- The recipients addresses
- sender- The sender address
- cc- Carbon copy address list. Can be null.
- bcc- Blind carbon copy address list. Can be null.
- deliveryReceipt- true to request that the receiving mail server send a notification when the mail is received.
- readReceipt- true to request that the receiving mail client send a notification when the person opens the mail.
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, String recipient, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, String host, long port, String securityProtocol, boolean async) throws javax.mail.MessagingException, IOException Sends mail without authentication, with attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipient- The recipient address
- sender- The sender address
- cc- Carbon copy address list. Can be null.
- bcc- Blind carbon copy address list. Can be null.
- deliveryReceipt- true to request that the receiving mail server send a notification when the mail is received.
- readReceipt- true to request that the receiving mail client send a notification when the person opens the mail.
- host- The server mail host
- port- The server port
- securityProtocol- The server mail security protocol
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, String host, long port, String securityProtocol, boolean async) throws javax.mail.MessagingException, IOException Sends mail without authentication, with attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipients- The recipients addresses
- sender- The sender address
- cc- Carbon copy address list. Can be null.
- bcc- Blind carbon copy address list. Can be null.
- deliveryReceipt- true to request that the receiving mail server send a notification when the mail is received.
- readReceipt- true to request that the receiving mail client send a notification when the person opens the mail.
- host- The server mail host
- port- The server port
- securityProtocol- The server mail security protocol
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, String recipient, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, String host, long port, String securityProtocol, String user, String password, boolean async) throws javax.mail.MessagingException, IOException Sends mail with authentication and attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipient- The recipient address
- sender- The sender address. Can be null when called by MailChecker.
- cc- Carbon copy address list. Can be null.
- bcc- Blind carbon copy address list. Can be null.
- deliveryReceipt- true to request that the receiving mail server send a notification when the mail is received.
- readReceipt- true to request that the receiving mail client send a notification when the person opens the mail.
- host- The server mail host. Can be null when called by MailChecker.
- securityProtocol- the security protocol to use when transporting the email
- port- The server port
- user- The user name
- password- The user password
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, String host, long port, String securityProtocol, String user, String password, boolean async) throws javax.mail.MessagingException, IOException Sends mail with authentication and attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipients- The recipients addresses
- sender- The sender address. Can be null when called by MailChecker.
- cc- Carbon copy address list. Can be null.
- bcc- Blind carbon copy address list. Can be null.
- deliveryReceipt- true to request that the receiving mail server send a notification when the mail is received.
- readReceipt- true to request that the receiving mail client send a notification when the person opens the mail.
- host- The server mail host. Can be null when called by MailChecker.
- securityProtocol- the security protocol to use when transporting the email
- port- The server port
- user- The user name
- password- The user password
- async- True to use asynchronous mail sending
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
sendMailpublic static void sendMail(String subject, String htmlBody, String textBody, Collection<File> attachments, List<String> recipients, String sender, List<String> cc, List<String> bcc, boolean deliveryReceipt, boolean readReceipt, String host, long port, String securityProtocol, String user, String password, boolean async, boolean singleEmail) throws javax.mail.MessagingException, IOException Sends mail with authentication and attachments.- Parameters:
- subject- The mail subject
- htmlBody- The HTML mail body. Can be null.
- textBody- The text mail body. Can be null.
- attachments- the file attachments. Can be null.
- recipients- The recipients addresses
- sender- The sender address. Can be null when called by MailChecker.
- cc- Carbon copy address list. Can be null.
- bcc- Blind carbon copy address list. Can be null.
- deliveryReceipt- true to request that the receiving mail server send a notification when the mail is received.
- readReceipt- true to request that the receiving mail client send a notification when the person opens the mail.
- host- The server mail host. Can be null when called by MailChecker.
- securityProtocol- the security protocol to use when transporting the email
- port- The server port
- user- The user name
- password- The user password
- async- True to use asynchronous mail sending
- singleEmail- true if just one email is sent with all recipients. Otherwise, an email will be sent for each recipients.
- Throws:
- javax.mail.MessagingException- If an error occurred while preparing or sending email
- IOException- if an error occurs while attaching a file.
 
 - 
inlineCSSpublic static String inlineCSS(String html) This method inline css in <style> tags directly in the appropriates tags. e.g. : <style>h1 {color: red;}</style> <h1>a</h1> becomes <h1 style="color: red">a</h1>- Parameters:
- html- The initial non null html
- Returns:
- The inlined html
 
 - 
_removeCommentsprivate static String _removeComments(String styleRules) 
 - 
concatenatePropertiesprivate static String concatenateProperties(String oldProp, String newProp) 
 - 
disposepublic void dispose() - Specified by:
- disposein interface- Disposable
 
 
- 
 
-