You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/11/07 11:04:08 UTC
git commit: minor performance improvements
Updated Branches:
refs/heads/develop 01e65fbc6 -> 1d40d1333
minor performance improvements
Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/1d40d133
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/1d40d133
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/1d40d133
Branch: refs/heads/develop
Commit: 1d40d1333be90d359bff01e591e25352aaa4da40
Parents: 01e65fb
Author: Sebastian Schaffert <ss...@apache.org>
Authored: Thu Nov 7 11:04:03 2013 +0100
Committer: Sebastian Schaffert <ss...@apache.org>
Committed: Thu Nov 7 11:04:03 2013 +0100
----------------------------------------------------------------------
.../marmotta/kiwi/loader/KiWiHandler.java | 45 +++++++++++++++-----
1 file changed, 34 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/1d40d133/libraries/kiwi/kiwi-loader/src/main/java/org/apache/marmotta/kiwi/loader/KiWiHandler.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-loader/src/main/java/org/apache/marmotta/kiwi/loader/KiWiHandler.java b/libraries/kiwi/kiwi-loader/src/main/java/org/apache/marmotta/kiwi/loader/KiWiHandler.java
index c2ecc7a..19c9bd6 100644
--- a/libraries/kiwi/kiwi-loader/src/main/java/org/apache/marmotta/kiwi/loader/KiWiHandler.java
+++ b/libraries/kiwi/kiwi-loader/src/main/java/org/apache/marmotta/kiwi/loader/KiWiHandler.java
@@ -50,6 +50,10 @@ public class KiWiHandler implements RDFHandler {
private LoadingCache<Literal, KiWiLiteral> literalCache;
private LoadingCache<URI, KiWiUriResource> uriCache;
private LoadingCache<BNode, KiWiAnonResource> bnodeCache;
+ private LoadingCache<String,Locale> localeCache;
+
+ // if non-null, all imported statements will have this context (regardless whether they specified a different context)
+ private KiWiResource overrideContext;
public KiWiHandler(KiWiStore store, KiWiLoaderConfiguration config) {
this.config = config;
@@ -85,6 +89,22 @@ public class KiWiHandler implements RDFHandler {
}
});
+ this.localeCache = CacheBuilder.newBuilder()
+ .maximumSize(100)
+ .build(new CacheLoader<String, Locale>() {
+ @Override
+ public Locale load(String lang) throws Exception {
+ try {
+ Locale.Builder builder = new Locale.Builder();
+ builder.setLanguageTag(lang);
+ return builder.build();
+ } catch (IllformedLocaleException ex) {
+ log.warn("malformed language literal (language: {})", lang);
+ return null;
+ }
+ }
+ });
+
}
/**
@@ -124,6 +144,14 @@ public class KiWiHandler implements RDFHandler {
this.start = System.currentTimeMillis();
this.previous = System.currentTimeMillis();
+
+ if(config.getContext() != null) {
+ try {
+ this.overrideContext = (KiWiResource)convertNode(new URIImpl(config.getContext()));
+ } catch (ExecutionException e) {
+ log.error("could not create/load resource",e);
+ }
+ }
}
/**
@@ -162,8 +190,8 @@ public class KiWiHandler implements RDFHandler {
KiWiNode object = convertNode(st.getObject());
KiWiResource context;
- if(config.getContext() != null) {
- context = (KiWiResource)convertNode(new URIImpl(config.getContext()));
+ if(this.overrideContext != null) {
+ context = this.overrideContext;
} else {
context = (KiWiResource)convertNode(st.getContext());
}
@@ -215,18 +243,13 @@ public class KiWiHandler implements RDFHandler {
Locale locale;
if(lang != null) {
- try {
- Locale.Builder builder = new Locale.Builder();
- builder.setLanguageTag(lang);
- locale = builder.build();
- } catch (IllformedLocaleException ex) {
- log.warn("malformed language literal (language: {})", lang);
- locale = null;
- lang = null;
- }
+ locale = localeCache.get(lang);
} else {
locale = null;
}
+ if(locale == null) {
+ lang = null;
+ }
KiWiLiteral result;