bacoAlunos
ENGSOFT2019
BlueGrey
calm
Elegant
Català-Valencià - Catalan
中文 - Chinese (Simplified)
中文 - Chinese (Traditional)
Česky - Czech
Dansk - Danish
Nederlands - Dutch
English - English
Suomi - Finnish
Français - French
Deutsch - German
עברית - Hebrew
हिंदी - Hindi
Magyar - Hungarian
Bahasa Indonesia - Indonesian
Italiano - Italian
日本語 - Japanese
한국어 - Korean
मराठी - Marathi
Norsk - Norwegian
Polski - Polish
Português - Portuguese
Português - Portuguese (Brazil)
Русский - Russian
Slovenčina - Slovak
Slovenščina - Slovenian
Español - Spanish
Svenska - Swedish
Türkçe - Turkish
Oëzbekcha - Uzbek
Subversion Repositories
bacoAlunos
(root)
/
impl
/
src
/
java
/
pt
/
estgp
/
estgweb
/
domain
/
UserSessionImpl.java
@ 88
- Rev
Rev
Rev 77
|
Blame
|
Compare with Previous
|
Last modification
|
View Log
|
RSS feed
package
pt.estgp.estgweb.domain
;
import
org.apache.commons.io.output.ByteArrayOutputStream
;
import
java.io.Serializable
;
import
java.io.ByteArrayInputStream
;
import
java.util.*
;
import
java.beans.XMLEncoder
;
import
java.beans.XMLDecoder
;
import
pt.utl.ist.berserk.logic.serviceManager.IServiceManager
;
import
pt.utl.ist.berserk.logic.serviceManager.ServiceManager
;
import
pt.estgp.estgweb.web.utils.RequestUtils
;
import
pt.estgp.estgweb.domain.dao.DaoFactory
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
/**
* @author Jorge Machado
* @date 2/Mar/2008
* @time 10:27:25
* @see pt.estgp.estgweb.domain
*/
public
class
UserSessionImpl
extends
UserSession
{
private
Set
<
SessionObject
>
removeList
;
/**
* @return
*/
public
1.
5
.0/docs/api/java/io/Serializable.html">
Serializable
getSerializable
(
)
{
return
getCookie
(
)
;
}
/**
* put an object in cache
*
* @param key
* @param obj
*/
public
void
put
(
1.
5
.0/docs/api/java/lang/String.html">
String
key,
1.
5
.0/docs/api/java/io/Serializable.html">
Serializable
obj
)
{
if
(
getObjects
(
)
==
null
|| getObjects
(
)
.
size
(
)
== 0
)
{
setObjects
(
new
HashSet
<
SessionObject
>
(
)
)
;
}
SessionObject sessionObject = getSessionObject
(
key
)
;
if
(
sessionObject ==
null
)
{
sessionObject = DomainObjectFactory.
createSessionObjectImpl
(
)
;
SessionObjectId sessionObjectId = DomainObjectFactory.
createSessionObjectIdImpl
(
)
;
sessionObjectId.
setKeyId
(
key
)
;
sessionObject.
setSaveDate
(
new
5+
0
%
2Fdocs
%
2Fapi+Date">
Date
(
)
)
;
sessionObjectId.
setUserSession
(
this
)
;
sessionObject.
setId
(
sessionObjectId
)
;
getObjects
(
)
.
add
(
sessionObject
)
;
}
1.
5
.0/docs/api/java/io/ByteArrayOutputStream.html">
ByteArrayOutputStream
os =
new
1.
5
.0/docs/api/java/io/ByteArrayOutputStream.html">
ByteArrayOutputStream
(
)
;
1.
5
.0/docs/api/java/beans/XMLEncoder.html">
XMLEncoder
xenc =
new
1.
5
.0/docs/api/java/beans/XMLEncoder.html">
XMLEncoder
(
os
)
;
xenc.
writeObject
(
obj
)
;
xenc.
close
(
)
;
sessionObject.
setXmlObject
(
os.
toString
(
)
)
;
}
/**
* put an object in cache
* only will be persistent when serialize is called
*
* @param key
*/
public
void
remove
(
1.
5
.0/docs/api/java/lang/String.html">
String
key
)
{
if
(
getObjects
(
)
==
null
|| getObjects
(
)
.
size
(
)
== 0
)
{
setObjects
(
new
HashSet
<
SessionObject
>
(
)
)
;
}
SessionObject sessionObject = getAndRemoveSessionObject
(
key
)
;
if
(
sessionObject
!
=
null
)
{
if
(
removeList ==
null
)
removeList =
new
HashSet
<
SessionObject
>
(
)
;
removeList.
add
(
sessionObject
)
;
}
}
/**
* put an object in cache
* only will be persistent when serialize is called
*
* @param key
*/
public
void
removeWithOpenTransaction
(
1.
5
.0/docs/api/java/lang/String.html">
String
key
)
{
if
(
getObjects
(
)
==
null
|| getObjects
(
)
.
size
(
)
== 0
)
{
setObjects
(
new
HashSet
<
SessionObject
>
(
)
)
;
}
SessionObject sessionObject = getAndRemoveSessionObject
(
key
)
;
DaoFactory.
getSessionObjectDaoImpl
(
)
.
evictAndDelete
(
sessionObject
)
;
}
public
void
clearObjects
(
)
{
if
(
getObjects
(
)
==
null
|| getObjects
(
)
.
size
(
)
== 0
)
{
return
;
}
if
(
removeList
!
=
null
)
removeList.
addAll
(
getObjects
(
)
)
;
else
removeList = getObjects
(
)
;
setObjects
(
null
)
;
}
public
void
clearObjectsWithOpenTransaction
(
)
{
clearObjects
(
)
;
DaoFactory.
getSessionObjectDaoImpl
(
)
.
evictAndDelete
(
removeList
)
;
}
public
void
reset
(
)
{
setUser
(
null
)
;
setUsername
(
null
)
;
setName
(
null
)
;
clear
(
)
;
}
public
void
resetWithOpenTransaction
(
)
{
setUser
(
null
)
;
setUsername
(
null
)
;
setName
(
null
)
;
clearWithOpenTransaction
(
)
;
}
public
void
clear
(
)
{
clearObjects
(
)
;
setUser
(
null
)
;
setUsername
(
null
)
;
setName
(
null
)
;
}
public
void
clearWithOpenTransaction
(
)
{
clearObjectsWithOpenTransaction
(
)
;
setUser
(
null
)
;
setUsername
(
null
)
;
setName
(
null
)
;
}
/**
* Return a seralized object for a given key
*
* @param key
* @return
*/
public
1.
5
.0/docs/api/java/io/Serializable.html">
Serializable
get
(
1.
5
.0/docs/api/java/lang/String.html">
String
key
)
{
if
(
getObjects
(
)
==
null
)
{
return
null
;
}
for
(
SessionObject sessionObject : getObjects
(
)
)
{
if
(
sessionObject.
getId
(
)
.
getKeyId
(
)
.
equals
(
key
)
)
{
1.
5
.0/docs/api/java/beans/XMLDecoder.html">
XMLDecoder
xmlDecoder =
new
1.
5
.0/docs/api/java/beans/XMLDecoder.html">
XMLDecoder
(
new
1.
5
.0/docs/api/java/io/ByteArrayInputStream.html">
ByteArrayInputStream
(
sessionObject.
getXmlObject
(
)
.
getBytes
(
)
)
)
;
return
(
1.
5
.0/docs/api/java/io/Serializable.html">
Serializable
)
xmlDecoder.
readObject
(
)
;
}
}
return
null
;
}
/**
* Return an session object with a given key
*
* @param key
* @return
*/
private
SessionObject getSessionObject
(
1.
5
.0/docs/api/java/lang/String.html">
String
key
)
{
if
(
getObjects
(
)
==
null
)
{
return
null
;
}
for
(
SessionObject sessionObject : getObjects
(
)
)
{
if
(
sessionObject.
getId
(
)
.
getKeyId
(
)
.
equals
(
key
)
)
{
return
sessionObject
;
}
}
return
null
;
}
/**
* Return an session object with a given key removing it from list
*
* @param key
* @return
*/
private
SessionObject getAndRemoveSessionObject
(
1.
5
.0/docs/api/java/lang/String.html">
String
key
)
{
if
(
getObjects
(
)
==
null
)
{
return
null
;
}
Iterator
<
SessionObject
>
iter = getObjects
(
)
.
iterator
(
)
;
while
(
iter.
hasNext
(
)
)
{
SessionObject sessionObject = iter.
next
(
)
;
if
(
sessionObject.
getId
(
)
.
getKeyId
(
)
.
equals
(
key
)
)
{
iter.
remove
(
)
;
return
sessionObject
;
}
}
return
null
;
}
/**
* Serialize Session to Database
*
* @param request
* @throws Throwable
*/
public
void
serialize
(
HttpServletRequest request
)
throws
1.
5
.0/docs/api/java/lang/Throwable.html">
Throwable
{
serialize
(
RequestUtils.
getRequester
(
request
)
)
;
}
/**
* Serialize Session to Database
*
* @param requester
* @throws Throwable
*/
public
void
serialize
(
1.
5
.0/docs/api/java/lang/String.html">
String
requester
)
throws
1.
5
.0/docs/api/java/lang/Throwable.html">
Throwable
{
try
{
IServiceManager sm = ServiceManager.
getInstance
(
)
;
5+
0
%
2Fdocs
%
2Fapi+Object">
Object
[
]
args =
new
5+
0
%
2Fdocs
%
2Fapi+Object">
Object
[
]
{
this
, removeList
}
;
sm.
execute
(
requester,
"UpdateUserSession"
, args
)
;
if
(
removeList
!
=
null
)
removeList.
clear
(
)
;
}
catch
(
1.
5
.0/docs/api/java/lang/Throwable.html">
Throwable
e
)
{
throw
e
;
}
}
}