Yapılandırma Yükleyicileri
Yükleme işleminden başlayarak yapılandırmanın nasıl çalıştığını çözelim. Yapınlandırma şunları içerir ConfigurationLoaders genel yapılandırma ayarları için, fiziksel yapılandırma dosya yöneticisi olarak bulunur, kaydetmek ve verilen kaynak verileri yüklemeye izin verir. Ayrıca, varsayılan değerleri sabit kodlama veya önceden yazılmış bir dosyadan yükleme seçeneği sunarak boş yapılandırmaları yüklemenize izin verir.
Yükleyici alınıyor
Not
Varsayılan olarak HOCON kullanıyorsanız bunun yerine ConfigurationLoader kullanılabilirsiniz; ayrıca bakın ana yapılandırma sayfası.
İlk olarak, yapılandırma dosyasını gösteren yeni bir ConfigurationLoader ele alalım.
import java.nio.file.Path;
import ninja.leaping.configurate.commented.CommentedConfigurationNode;
import ninja.leaping.configurate.hocon.HoconConfigurationLoader;
import ninja.leaping.configurate.loader.ConfigurationLoader;
Path potentialFile = getConfigPath();
ConfigurationLoader<CommentedConfigurationNode> loader =
HoconConfigurationLoader.builder().setPath(potentialFile).build();
Yükleyici, hangi düğüm oluşturacağına bağlı olarak genel bir tür de tutacaktır. Bu * Yapılandırma Düğümleri * bir sonraki bölümde tartışılacaktır.
`` ConfigurationLoader`` s genellikle direk eriştiğiniz ve istediğiniz türdeki yükleyicinin yeni bir örneğini oluşturmak için bulunan bir oluşturucudur. Basit bir yapılandırma için, yüklemek ve / veya kaydetmek istediğimiz dosyadan başka bir şeyi belirtmek zorunda değiliz, bu yüzden yapacağımız tek şey HoconConfigurationLoader.builder().setPath(path)``kullanılacağını belirtmek. Daha sonra geliştiriciye bunun örneğini inşa etmesini (``build()
) ve bir değişkene depolamasını söyleriz.
Elbette, bir dosyayı yüklemenin tek yolu bu değildir. Oluşturucuda Path
nesne kullanmadan kaynak yüklemek istediğiniz zaman setURL(URL)``yöntemi vardır. Bir ``URL
den oluşturulan yapılandırma yükleyicilerinin, URL’ye veri yazmanın hiçbir yolu olmadığı zaman kabul edilebilir olduğunu unutmayın.
Bu işlevsellik, eklenti Jar dosyasıyla varsayılan yapılandırmaları paketlemek ve sunucu yöneticisi tarafından düzenlenecek ilk yapılandırma olarak yüklemek için kullanılabilir (ya da eklentinizin kendisi).
Yükleme ve kaydetme
ConfigurationLoader
edindikten sonra bunu createEmptyNode ()
yöntemini kullanarak boş bir ConfigurationNode elde etmek için kullanabilirsiniz.
import ninja.leaping.configurate.ConfigurationNode;
import ninja.leaping.configurate.ConfigurationOptions;
Path potentialFile = getConfigPath();
ConfigurationLoader<CommentedConfigurationNode> loader = HoconConfigurationLoader.builder().setPath(potentialFile).build();
ConfigurationNode rootNode = loader.createEmptyNode(ConfigurationOptions.defaults());
Bu yöntem`ninja.leaping.configurate.ConfigurationOptions` parametresinin kullanılmasını beklemektedir. Özel tür seri hale getirme gibi özellikleri kullanmak istemiyorsanız, varsayılan değerleri içeren bir seçenek nesnesi oluşturmak için ConfigurationOptions#defaults() işlevini kullanabilirsiniz.
load()
yöntemini kullanarak, yapılandırma içeriği ConfigurationLoader
oluşturulduğunda, belirtilen kaynaktan yüklemeyi deneyebilirsiniz. Aynı zamanda ConfigurationLoader
örneğini beklemekle birlikte, ayrıca load(ConfigurationOptions.defaults())
değişken olmayan bir form da sağlar.
import java.io.IOException;
Path potentialFile = getConfigPath();
ConfigurationLoader<CommentedConfigurationNode> loader = HoconConfigurationLoader.builder().setPath(potentialFile).build();
ConfigurationNode rootNode;
try {
rootNode = loader.load();
} catch(IOException e) {
// error
}
Belirtilen Path
mevcut değilse, load ()
yöntemi boş bir ConfigurationNode``oluşturur. Başka herhangi bir hata, düzgün bir şekilde ele alınması gereken bir ``IOException
atılmasına neden olacaktır.
Varsayılan yükleyiciyi ekletiyseniz, çok sayıda Sponge nesnesini seri hale getirme ve serileştirme yeteneği içerdiğinden, ``ConfigurationOptions``dosyasını edinmek iyi bir fikirdir.
Kaydedilmeyi istediğiniz verileri tutmak için ConfigurationNode``u değiştirdikten sonra, düğümü yükleyiciyi oluştururken belirtilen dosyaya kaydetmek için ``ConfigurationLoader
kullanabilirsiniz. Bu dosya mevcut değilse oluşturulur. Varsa, tüm içerikler üzerine yazılır.
try {
loader.save(rootNode);
} catch(IOException e) {
// error
}
Yine, hatalar bir ``IOException``olarak belirir ve ele alınması gerekir.
Örnek: Eklenti jar dosyasından varsayılan bir yapılandırma yükleniyor
import java.net.URL;
URL jarConfigFile = Sponge.getAssetManager().getAsset("defaultConfig.conf").get().getUrl();
ConfigurationLoader<CommentedConfigurationNode> loader =
HoconConfigurationLoader.builder().setURL(jarConfigFile).build();
Bu örnek için dikkat edilmesi gereken önemli nokta AssetManager#getAsset(String) yöntemi, eklentinin varlık klasörüne göre çalışır. Yukarıdaki örnekte, eklenti kimliği myplugin``ise, ``defaultConfig.conf
dosyası, jar dosyasında değil, assets/myplugin
dizininde olmalıdır. Daha fazla bilgi için Varlık API sayfasına bakın.