package org.jetbrains.ruby.codeInsight.types.storage.server; import org.jetbrains.annotations.NotNull; public class StatFileInfo { @NotNull private final String myGemFullName; @NotNull private final String myGemName; @NotNull private final String myGemVersion; private final long myLastModified; public StatFileInfo(@NotNull final String gemFullName, final long lastModified) { final int gemVersionIdx = gemFullName.lastIndexOf('-'); final int fileExtensionIdx = gemFullName.lastIndexOf(".json"); if (gemVersionIdx == -1 || fileExtensionIdx == -1) { throw new IllegalArgumentException("Failed to parse gem name and version: " + gemFullName); } myGemFullName = gemFullName; myGemName = myGemFullName.substring(0, gemVersionIdx); myGemVersion = myGemFullName.substring(gemVersionIdx + 1, fileExtensionIdx); myLastModified = lastModified; } @NotNull public String getFullGemName() { return myGemFullName; } @NotNull public String getGemName() { return myGemName; } @NotNull public String getGemVersion() { return myGemVersion; } public long getLastModified() { return myLastModified; } }