Files
SCM-Manager/scm-persistence/src/main/java/sonia/scm/group/xml/XmlGroupDatabase.java

121 lines
2.4 KiB
Java
Raw Normal View History

/*
* Copyright (c) 2020 - present Cloudogu GmbH
2010-12-31 16:28:55 +01:00
*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License as published by the Free
* Software Foundation, version 3.
2010-12-31 16:28:55 +01:00
*
* 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 Affero General Public License for more
* details.
2010-12-31 16:28:55 +01:00
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see https://www.gnu.org/licenses/.
2010-12-31 16:28:55 +01:00
*/
package sonia.scm.group.xml;
2010-12-31 16:28:55 +01:00
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import sonia.scm.auditlog.AuditEntry;
2010-12-31 16:28:55 +01:00
import sonia.scm.group.Group;
import sonia.scm.xml.XmlDatabase;
2010-12-31 16:28:55 +01:00
import java.util.Collection;
import java.util.Map;
import java.util.TreeMap;
2010-12-31 16:28:55 +01:00
@AuditEntry(ignore = true)
2010-12-31 16:49:47 +01:00
@XmlRootElement(name = "group-db")
@XmlAccessorType(XmlAccessType.FIELD)
public class XmlGroupDatabase implements XmlDatabase<Group>
2010-12-31 16:28:55 +01:00
{
private Long creationTime;
@XmlJavaTypeAdapter(XmlGroupMapAdapter.class)
@XmlElement(name = "groups")
private Map<String, Group> groupMap = new TreeMap<>();
private Long lastModified;
2010-12-31 16:28:55 +01:00
public XmlGroupDatabase()
{
long c = System.currentTimeMillis();
creationTime = c;
lastModified = c;
}
@Override
2010-12-31 16:28:55 +01:00
public void add(Group group)
{
groupMap.put(group.getName(), group);
}
@Override
2010-12-31 16:28:55 +01:00
public boolean contains(String groupname)
{
return groupMap.containsKey(groupname);
}
@Override
2010-12-31 16:28:55 +01:00
public Group remove(String groupname)
{
return groupMap.remove(groupname);
}
@Override
2010-12-31 16:28:55 +01:00
public Collection<Group> values()
{
return groupMap.values();
}
@Override
2010-12-31 16:28:55 +01:00
public Group get(String groupname)
{
return groupMap.get(groupname);
}
@Override
2010-12-31 16:28:55 +01:00
public long getCreationTime()
{
return creationTime;
}
@Override
2010-12-31 16:28:55 +01:00
public long getLastModified()
{
return lastModified;
}
@Override
2010-12-31 16:28:55 +01:00
public void setCreationTime(long creationTime)
{
this.creationTime = creationTime;
}
@Override
2010-12-31 16:28:55 +01:00
public void setLastModified(long lastModified)
{
this.lastModified = lastModified;
}
}